月度归档: 2025 年 9 月
thumbnail

67、'static lifetime(静态生命周期)

‘static   如果我们尝试在上一个练习中从Vec借用切片,我们可能会遇到下面的编译器错误: error[E0597]: `v` does not live long enough | 11 | pub……
thumbnail

66、Threads(线程)

Threads(线程)   在开始编写多线程代码之前,让我们退一步先学习一下什么是线程,以及为什么要使用线程。   什么是线程?   线程,是由底层……
thumbnail

65、第六章——开篇

线程——介绍   Rust的一大承诺就是无畏并发:让编写安全的并发程序变得更容易。我们还没有看到太多这一点。到目前位置,我们所做的所有工作都是单线程的。……
thumbnail

64、BTreeMap(B树表)

概述   通过从Vec迁移到HashMap,我们提高了票务管理系统的性能,并在此过程中简化了代码。 不过,这并不意味着万事大吉。在迭代Vec的存储结构时,我们可……
thumbnail

63、HashMap(哈希表)

HashMap(哈希表)   我们对Index/IndexMut的实现并不理想:我们需要按照id遍历整个Vec来检索想要的ticket;时间复杂度为O(n),其中n就是TicketStore里面……
thumbnail

62、IndexMut trait(可变索引trait)

Mutable indexing   Index允许只读访问。它不允许我们更改检索到的值。   IndexMut   如果我们想要支持可变性,那我们就需要实现IndexMut trai……
thumbnail

61、Index trait(索引trait)

Indexing   上一节的练习中,Ticket::store根据给定的TicketId返回Option<&Ticket>。 我们之前已经学过了如何使用Rust的索引语法访问数组和vec……
thumbnail

60、两个状态(开发思维)

Ticket ID   让我们再想想我们的票务管理系统。 我们现在的Ticket模型如下: pub struct Ticket { pub title: TicketTitle, pub description: ……
thumbnail

59、Mutable slices(可变切片)

Mutable slices(可变切片)   每当我们谈论切片类型(如str和[T])时,我们使用的都是他们的不可变借用形式(&str和&[T])。 但是切片也可以是……
thumbnail

58、Slices(切片)

Slices(切片)   让我们回顾一下Vec的内存布局: let mut numbers = Vec::with_capacity(3); numbers.push(1); numbers.push(2);   我们之前……