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"

更多推荐