第 16 章 集合(1)
吉姆•布兰迪
我们都像物理学假想中的麦克斯韦妖一样活动。正是在日常经验中,我们可以发现一向冷静的物理学家在两个世纪里对这个卡通形象一直难以忘怀的原因。生物体(organism),顾名思义,时刻在组织(organize)。我们分拣邮件、堆造沙堡、拼凑拼图、复盘棋局、收集邮票、给麦穗脱粒、按字母表顺序排列图书、创造对称形式、创作十四行诗和奏鸣曲,以及整理自己的房间。所有这些活动并不需要巨大的能量,只需保障我们能够发挥智能便可。
——James Gleick,《信息简史》
Rust 标准库包含多个集合,这些集合是泛型类型,用于在内存中存储各种数据。在本书中,我们已经用到了一些集合,比如 Vec 和 HashMap。本章将详细介绍这两种类型的方法,以及另外 6 个标准集合。在开始之前,我们先来辨析一下 Rust 的集合与其他语言的集合之间的一些系统性差异。
首先,移动和借用无处不在。Rust 使用移动来避免对值做深拷贝。这就是 Vec<T>::push(item) 方法会按值而非按引用来获取参数的原因。这样值就会移动到向量中。第 4 章中的示意图展示了这在实践中是如何实现的:将 Rust String 压入 Vec<String> 中会很快,因为 Rust 不必复制字符串的字符数据,并且字符串的所有权始终是明晰的。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
![](https://static001.geekbang.org/resource/image/d0/e4/d0880927e2a522a038be2d04bf19dfe4.png)
本文深入介绍了 Rust 标准库中的 8 种集合类型,包括 Vec、HashMap 和 HashSet 等。与其他语言的集合存在系统性差异,如对移动和借用的处理、失效型错误的避免以及对 null 的替代。文章详细讨论了每种集合类型的描述、其他语言中类似的集合类型以及各自的基本应用场景。Vec、HashMap 和 HashSet 被强调为最常用的集合类型。此外,文章还介绍了访问元素的方法、向量、数组和切片的迭代方式,以及向量的容量管理、添加或移除元素的方法。通过系统性的介绍和详细的示例,读者可以深入理解 Rust 集合类型的特性和操作方法。文章还提到了 BinaryHeap 的使用方法,以及它在工作队列中的应用。总的来说,本文内容丰富,涵盖了 Rust 集合类型的方方面面,对读者快速了解 Rust 中集合的特点和用法具有很高的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Rust 程序设计(第 2 版)》
《Rust 程序设计(第 2 版)》
立即购买
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论