1. 简介
  2. Hello World
    1. 注释
    2. 格式化输出
      1. 调试(debug)
      2. 显示(display)
      3. 测试实例:List
      4. 格式化
  3. 原生类型
    1. 字面量和运算符
    2. 元组
    3. 数组和切片
  4. 自定义类型
    1. 结构体
    2. 枚举
      1. 使用 use
      2. C 风格用法
      3. 测试实例:链表
    3. 常量
  5. 变量绑定
    1. 可变变量
    2. 作用域和遮蔽
    3. 变量先声明
    4. 冻结
  6. 类型系统
    1. 类型转换
    2. 字面量
    3. 类型推断
    4. 别名
  7. 类型转换
    1. From 和 Into
    2. TryFrom 和 TryInto
    3. ToString 和 FromStr
  8. 表达式
  9. 流程控制
    1. if/else
    2. loop 循环
      1. 嵌套循环和标签
      2. 从 loop 循环返回
    3. while 循环
    4. for 循环和区间
    5. match 匹配
      1. 解构
        1. 元组
        2. 数组/切片
        3. 枚举
        4. 指针和引用
        5. 结构体
      2. 卫语句
      3. 绑定
    6. if let
    7. while let
  10. 函数
    1. 方法
    2. 闭包
      1. 捕获
      2. 作为输入参数
      3. 类型匿名
      4. 输入函数
      5. 作为输出参数
      6. std 中的例子
        1. Iterator::any
        2. Iterator::find
    3. 高阶函数
    4. 发散函数
  11. 模块
    1. 可见性
    2. 结构体的可见性
    3. use 声明
    4. super 和 self
    5. 文件分层
  12. crate
    1. 使用库
  13. cargo
    1. 依赖
    2. 约定规范
    3. 测试
    4. 构建脚本
  14. 属性
    1. 死代码 dead_code
    2. crate
    3. cfg
      1. 自定义条件
  15. 泛型
    1. 函数
    2. 实现
    3. trait
    4. 约束
      1. 测试实例:空约束
    5. 多重约束
    6. where 子句
    7. newtype 惯用法
    8. 关联项
      1. 存在问题
      2. 关联类型
    9. 虚类型参数
      1. 测试实例:单位检查
  16. 作用域规则
    1. RAII
    2. 所有权和移动
      1. 可变性
      2. 部分移动
    3. 借用
      1. 可变性
      2. 别名使用
      3. ref 模式
    4. 生命周期
      1. 显式标注
      2. 函数
      3. 方法
      4. 结构体
      5. trait
      6. 约束
      7. 强制转换
      8. static
      9. 省略
  17. 特质 trait
    1. 派生
    2. 使用 dyn 返回 trait
    3. 运算符重载
    4. Drop
    5. Iterator
    6. impl Trait
    7. Clone
    8. 父 trait
    9. 消除重叠 trait
  18. 使用 macro_rules! 来创建宏
    1. 语法
      1. 指示符
      2. 重载
      3. 重复
    2. DRY (不写重复代码)
    3. DSL (领域专用语言)
    4. 可变参数接口
  19. 错误处理
    1. panic
    2. Option 和 unwrap
      1. 使用 ? 解开 Option
      2. 组合算子:map
      3. 组合算子:and_then
    3. 结果 Result
      1. Result 的 map
      2. 给 Result 取别名
      3. 提前返回
      4. 引入 ?
    4. 处理多种错误类型
      1. 从 Option 中取出 Result
      2. 定义一种错误类型
      3. 把错误 “装箱”
      4. ? 的其他用法
      5. 包裹错误
    5. 遍历 Result
  20. 标准库类型
    1. 箱子、栈和堆
    2. 动态数组 vector
    3. 字符串 String
    4. 选项 Option
    5. 结果 Result
      1. ? 用法
    6. panic!
    7. 散列表 HashMap
      1. 更改或自定义关键字类型
      2. 散列集 HashSet
    8. 引用计数 Rc
    9. 共享引用计数 Arc
  21. 标准库更多介绍
    1. 线程
      1. 测试实例:map-reduce
    2. 通道
    3. 路径
    4. 文件输入输出(I/O)
      1. 打开文件 open
      2. 创建文件 create
      3. 读取行 read lines
    5. 子进程
      1. 管道
      2. 等待
    6. 文件系统操作
    7. 程序参数
      1. 参数解析
    8. 外部语言函数接口
  22. 测试
    1. 单元测试
    2. 文档测试
    3. 集成测试
    4. 开发依赖
  23. 不安全操作
  24. 兼容性
    1. 原始标志符
  25. 补充
    1. 文档
    2. Playpen