分类: Rust学习笔记
67、'static lifetime(静态生命周期)
‘static
如果我们尝试在上一个练习中从Vec借用切片,我们可能会遇到下面的编译器错误:
error[E0597]: `v` does not live long enough
|
11 | pub……
66、Threads(线程)
Threads(线程)
在开始编写多线程代码之前,让我们退一步先学习一下什么是线程,以及为什么要使用线程。
什么是线程?
线程,是由底层……
65、第六章——开篇
线程——介绍
Rust的一大承诺就是无畏并发:让编写安全的并发程序变得更容易。我们还没有看到太多这一点。到目前位置,我们所做的所有工作都是单线程的。……
64、BTreeMap(B树表)
概述
通过从Vec迁移到HashMap,我们提高了票务管理系统的性能,并在此过程中简化了代码。
不过,这并不意味着万事大吉。在迭代Vec的存储结构时,我们可……
63、HashMap(哈希表)
HashMap(哈希表)
我们对Index/IndexMut的实现并不理想:我们需要按照id遍历整个Vec来检索想要的ticket;时间复杂度为O(n),其中n就是TicketStore里面……
62、IndexMut trait(可变索引trait)
Mutable indexing
Index允许只读访问。它不允许我们更改检索到的值。
IndexMut
如果我们想要支持可变性,那我们就需要实现IndexMut trai……
61、Index trait(索引trait)
Indexing
上一节的练习中,Ticket::store根据给定的TicketId返回Option<&Ticket>。
我们之前已经学过了如何使用Rust的索引语法访问数组和vec……
60、两个状态(开发思维)
Ticket ID
让我们再想想我们的票务管理系统。
我们现在的Ticket模型如下:
pub struct Ticket {
pub title: TicketTitle,
pub description: ……
59、Mutable slices(可变切片)
Mutable slices(可变切片)
每当我们谈论切片类型(如str和[T])时,我们使用的都是他们的不可变借用形式(&str和&[T])。
但是切片也可以是……
58、Slices(切片)
Slices(切片)
让我们回顾一下Vec的内存布局:
let mut numbers = Vec::with_capacity(3);
numbers.push(1);
numbers.push(2);
我们之前……