- 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. Slice 类型
- 5. 使用结构体组织相关数据
- 5.1. 定义与实例化结构体
- 5.2. 使用结构体的示例程序
- 5.3. 方法语法
- 6. 枚举与模式匹配
- 6.1. 定义枚举
- 6.2. match 控制流结构
- 6.3. 使用 if let 与 let else 的简洁控制流
- 7. 使用包、Crate 和模块管理不断增长的项目
- 7.1. 包与 Crate
- 7.2. 定义模块控制作用域与私有性
- 7.3. 在模块树中引用项的路径
- 7.4. 使用 use 关键字将路径引入作用域
- 7.5. 将模块分离到不同文件
- 8. 常用集合
- 8.1. 使用 Vector 存储值列表
- 8.2. 使用 String 存储 UTF-8 编码的文本
- 8.3. 在 HashMap 中存储键值对
- 9. 错误处理
- 9.1. 使用 panic! 处理不可恢复的错误
- 9.2. 使用 Result 处理可恢复的错误
- 9.3. panic! 还是不 panic!?
- 10. 泛型、Trait 与生命周期
- 10.1. 泛型数据类型
- 10.2. Trait:定义共享行为
- 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 Trait 将智能指针视为常规引用
- 15.3. 使用 Drop Trait 在清理时运行代码
- 15.4. Rc<T>,引用计数智能指针
- 15.5. RefCell<T> 与内部可变性模式
- 15.6. 引用循环可能导致内存泄漏
- 16. 无畏并发
- 16.1. 使用线程同时运行代码
- 16.2. 使用消息传递在线程之间传输数据
- 16.3. 共享状态并发
- 16.4. 使用 Sync 和 Send Trait 的可扩展并发
- 17. 异步编程基础:Async、Await、Future 与 Stream
- 17.1. Future 与 Async 语法
- 17.2. 使用 Async 应用并发
- 17.3. 处理任意数量的 Future
- 17.4. Stream:序列中的 Future
- 17.5. 深入了解 Async 的 Trait
- 17.6. Future、任务与线程
- 18. Rust 的面向对象编程特性
- 18.1. 面向对象语言的特性
- 18.2. 使用 Trait 对象实现不同类型的值
- 18.3. 实现面向对象的设计模式
- 19. 模式与匹配
- 19.1. 可以使用模式的所有地方
- 19.2. 可反驳性:模式是否可能匹配失败
- 19.3. 模式语法
- 20. 高级特性
- 20.1. Unsafe Rust
- 20.2. 高级 Trait
- 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 - 可派生 Trait
- 22.4. D - 有用的开发工具
- 22.5. E - 版本
- 22.6. F - 本书的译本
- 22.7. G - Rust 是如何构建的与“Nightly Rust”