Rust 编程语言 - 中文2021版
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 简洁控制流
7. 使用包、Crate 和模块管理不断增长的项目
7.1 包和 Crate
7.2 定义模块来控制作用域与私有性
7.3 引用模块项目的路径
7.4 使用 use 关键字将路径引入作用域
7.5 将模块拆分成多个文件
8. 常见集合
8.1 使用 Vector 储存列表
8.2 使用字符串储存 UTF-8 编码的文本
8.3 使用 Hash Map 储存键值对
9. 错误处理
9.1 用 panic! 处理不可恢复的错误
9.2 用 Result 处理可恢复的错误
9.3 要不要 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. Rust 中的函数式语言功能:迭代器与闭包
13.1 闭包:可以捕获其环境的匿名函数
13.2 使用迭代器处理元素序列
13.3 改进之前的 I/O 项目
13.4 性能比较:循环VS迭代器
14. 更多关于 Cargo 和 Crates.io 的内容
14.1 采用发布配置自定义构建
14.2 将 crate 发布到 Crates.io
14.3 Cargo 工作空间
14.4 使用 cargo install 安装二进制文件
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 Traits 的可扩展并发
17. Rust 的面向对象编程特性
17.1 面向对象语言的特点
17.2 为使用不同类型的值而设计的 trait 对象
17.3 面向对象设计模式的实现
18. 模式与模式匹配
18.1 所有可能会用到模式的位置
18.2 Refutability(可反驳性): 模式是否会匹配失效
18.3 模式语法
19. 高级特征
19.1 不安全的 Rust
19.2 高级 trait
19.3 高级类型
19.4 高级函数与闭包
19.5 宏
20. 最后的项目:构建多线程 web server
20.1 建立单线程 web server
20.2 将单线程 server 变为多线程 server
20.3 优雅停机与清理
21. 附录
21.1 A-关键词
21.2 B-运算符与符号
21.3 C-可派生的 trait
21.4 D-实用开发工具
21.5 E-版本
21.6 F-本书的译本
21.7 G-Rust 是如何开发的和“Nightly Rust”
1.入门指南
Preview
1年前
入门
入门
让我们开始你的 Rust 之旅吧!有很多东西要学,但每段旅程都从某个地方开始。在本章中,我们将讨论:
在 Linux、macOS 和 Windows 上安装 Rust
编写一个打印程序Hello, world!
使用cargo, Rust 的包管理器和构建系统