- Rust 编程语言
- 前言
- 简介
- 1. 开始入门
- 1.1. 安装
- 1.2. Hello, World!
- 1.3. Hello, Cargo!
- 2. 编写一个猜数游戏
- 3. 常见编程概念
- 3.1. 变量与可变性
- 3.2. 数据类型
- 3.3. 函数
- 3.4. 注释
- 3.5. 控制流
- 4. 理解所有权
- 4.1. 什么是所有权?
- 4.2. 引用与借用
- 4.3. 切片类型
- 5. 使用结构体组织相关数据
- 5.1. 定义和实例化结构体
- 5.2. 一个使用结构体的示例程序
- 5.3. 方法语法
- 6. 枚举与模式匹配
- 6.1. 定义枚举
- 6.2. match 控制流构造器
- 6.3. 使用 if let 和 let else 实现简洁的控制流
- 7. 使用包、库和模块管理不断发展的项目
- 7.1. 包和库
- 7.2. 定义模块以控制作用域和私有性
- 7.3. 引用模块树中某个项的路径
- 7.4. 使用 use 关键字将路径引入作用域
- 7.5. 将模块拆分到不同文件中
- 8. 常见集合
- 8.1. 使用向量存储值列表
- 8.2. 使用字符串存储 UTF-8 编码的文本
- 8.3. 在哈希映射中存储键及其关联值
- 9. 错误处理
- 9.1. 使用 panic! 处理不可恢复的错误
- 9.2. 使用 Result 处理可恢复的错误
- 9.3. 是否使用 panic!
- 10. 泛型、特性和生命周期
- 10.1. 泛型数据类型
- 10.2. 特性:定义共享行为
- 10.3. 使用生命周期验证引用
- 11. 编写自动化测试
- 11.1. 如何编写测试
- 11.2. 控制测试的运行方式
- 11.3. 测试组织
- 12. 一个 I/O 项目:构建命令行程序
- 12.1. 接受命令行参数
- 12.2. 读取文件
- 12.3. 重构以提高模块化和错误处理能力
- 12.4. 使用测试驱动开发开发库的功能
- 12.5. 处理环境变量
- 12.6. 将错误消息写入标准错误而非标准输出
- 13. 函数式语言特性:迭代器和闭包
- 13.1. 闭包:捕获其环境的匿名函数
- 13.2. 使用迭代器处理一系列项
- 13.3. 改进我们的 I/O 项目
- 13.4. 比较性能:循环与迭代器
- 14. 更多关于 Cargo 和 Crates.io 的内容
- 14.1. 使用发布配置文件自定义构建
- 14.2. 将 crate 发布到 Crates.io
- 14.3. Cargo 工作区
- 14.4. 使用 cargo install 从 Crates.io 安装二进制文件
- 14.5. 使用自定义命令扩展 Cargo
- 15. 智能指针
- 15.1. 使用 Box<T> 指向堆上的数据
- 15.2. 使用 Deref 将智能指针当作常规引用处理
- 15.3. 使用 Drop 特性在清理时运行代码
- 15.4. Rc<T>,引用计数智能指针
- 15.5. RefCell<T> 和内部可变性模式
- 15.6. 引用循环可能导致内存泄漏
- 16. 无畏并发
- 16.1. 使用线程同时运行代码
- 16.2. 使用消息传递在线程间传输数据
- 16.3. 共享状态并发
- 16.4. 使用 Send 和 Sync 特性实现可扩展的并发
- 17. 异步编程基础:Async、Await、Futures 和 Streams
- 17.1. Futures 和 Async 语法
- 17.2. 使用 Async 实现并发
- 17.3. 处理任意数量的 Futures
- 17.4. Streams:顺序执行的 Futures
- 17.5. 深入研究 Async 的特性
- 17.6. Futures、Tasks 和 Threads
- 18. Rust 的面向对象编程特性
- 18.1. 面向对象语言的特性
- 18.2. 使用允许不同类型值的 Trait 对象
- 18.3. 实现面向对象设计模式
- 19. 模式与匹配
- 19.1. 模式的所有使用场景
- 19.2. 可反驳性:模式是否可能匹配失败
- 19.3. 模式语法
- 20. 高级特性
- 20.1. 不安全的 Rust
- 20.2. 高级特性
- 20.3. 高级类型
- 20.4. 高级函数和闭包
- 20.5. 宏
- 21. 最终项目:构建多线程 Web 服务器
- 21.1. 构建单线程 Web 服务器
- 21.2. 将我们的单线程服务器转换为多线程服务器
- 21.3. 优雅关闭和清理
- 22. 附录
- 22.1. A - 关键字
- 22.2. B - 运算符和符号
- 22.3. C - 可派生特性
- 22.4. D - 有用的开发工具
- 22.5. E - 版本
- 22.6. F - 本书的翻译版本
- 22.7. G - Rust 的构建过程与 “Nightly Rust”