Rust程序设计语言 学习路径目录
Rust程序设计语言 学习路径目录
第1阶段:入门与基础语法
前言
简介
1. 入门指南
1.1 安装
1.2 Hello, World!
1.3 Hello, Cargo!
2. 编写一个猜数字游戏
3. 常见编程概念
3.1 变量与可变性
3.2 数据类型
3.3 函数
3.4 注释
3.5 控制流
第2阶段:核心所有权系统(Rust灵魂)
4. 认识所有权
4.1 什么是所有权?
4.2 引用与借用
4.3 Slice类型
第3阶段:自定义数据类型与模式匹配
5. 使用结构体组织相关联的数据
5.1 结构体的定义和实例化
5.2 结构体示例程序
5.3 方法语法
6. 枚举和模式匹配
6.1 枚举的定义
6.2 match控制流结构
6.3 if let和let else简洁控制流
第4阶段:项目管理与常用集合
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储存键值对
第5阶段:错误处理与泛型系统
9. 错误处理
9.1 用panic!处理不可恢复的错误
9.2 用Result处理可恢复的错误
9.3 要不要panic!
10. 泛型、Trait和生命周期
10.1 泛型数据类型
10.2 Trait:定义共同行为
10.3 生命周期确保引用有效
第6阶段:测试与实战项目
11. 编写自动化测试
11.1 如何编写测试
11.2 控制测试如何运行
11.3 测试的组织结构
12. 一个I/O项目:构建命令行程序
12.1 接受命令行参数
12.2 读取文件
12.3 重构以改进模块化与错误处理
12.4 采用测试驱动开发完善库的功能
12.5 处理环境变量
12.6 将错误信息输出到标准错误而不是标准输出
第7阶段:进阶特性(闭包、迭代器、Cargo)
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安装二进制文件
14.5 Cargo自定义扩展命令
第8阶段:智能指针与并发
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的可扩展并发
第9阶段:异步编程与面向对象
17. Async和await
17.1 Futures和async语法
17.2 并发与async
17.3 使用任意数量的futures
17.4 流(Streams)
17.5 深入理解async相关的traits
17.6 future、任务和线程
18. 面向对象编程特性
18.1 面向对象语言的特征
18.2 顾及不同类型值的trait对象
18.3 面向对象设计模式的实现
第10阶段:高级特性与最终项目
19. 模式与模式匹配
19.1 所有可能会用到模式的位置
19.2 Refutability(可反驳性):模式是否会匹配失效
19.3 模式语法
20. 高级特性
20.1 不安全Rust
20.2 高级trait
20.3 高级类型
20.4 高级函数与闭包
20.5 宏
21. 最后的项目:构建多线程web server
21.1 建立单线程web server
21.2 将单线程server变为多线程server
21.3 优雅停机与清理
附录
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"
更多推荐
所有评论(0)