1. 介绍
  2. Hello World
    1. 注释
    2. 格式化打印
      1. 调试 Debug
      2. 显示 Display
        1. 测试实例:列表
      3. 格式化
  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. String 类型转换
  8. 表达式
  9. 控制流
    1. if/else
    2. loop
      1. 嵌套和标签
      2. 在 loop 中返回值
    3. while
    4. for 和 range
    5. match
      1. 解构
        1. 元组
        2. 数组/切片
        3. 枚举
        4. 指针/引用
        5. 结构体
      2. 守卫
      3. 绑定
    6. if let
    7. let-else
    8. while let
  10. 函数
    1. 方法
    2. 闭包
      1. 捕获
      2. 作为输入参数
      3. 类型匿名
      4. 输入函数
      5. 作为输出参数
      6. std 中的例子
        1. Iterator::any
        2. 通过迭代器搜索
    3. 高阶函数
    4. 发散函数
  11. 模块
    1. 可见性
    2. 结构体可见性
    3. use 声明
    4. super 和 self
    5. 文件分层
  12. Crates
    1. 创建库
    2. 使用库
  13. Cargo
    1. 依赖
    2. 约定
    3. 测试
    4. 构建脚本
  14. 属性
    1. dead_code
    2. Crates
    3. cfg
      1. 自定义
  15. 泛型
    1. 函数
    2. 实现
    3. 特质
    4. 约束
      1. 测试实例:空约束
    5. 多重约束
    6. Where 分句
    7. 新类型惯用法
    8. 关联项
      1. 问题
      2. 关联类型
    9. 虚类型参数
      1. 测试实例:单位澄清
  16. 作用域规则
    1. RAII
    2. 所有权和移动
      1. 可变性
      2. 部分移动
    3. 借用
      1. 可变性
      2. 别名
      3. ref 模式
    4. 生命周期
      1. 显式注解
      2. 函数
      3. 方法
      4. 结构体
      5. 特质
      6. 约束
      7. 强制转换
      8. 静态
      9. 省略
  17. 特质
    1. 派生
    2. 使用 dyn 返回 trait
    3. 运算符重载
    4. Drop
    5. 迭代器
    6. impl Trait
    7. 克隆
    8. 父特质
    9. 消除重叠特质的歧义
  18. macro_rules!
    1. 语法
      1. 指示符
      2. 重载
      3. 重复
    2. DRY(不要重复自己)
    3. DSL(领域特定语言)
    4. 可变参数
  19. 错误处理
    1. panic
    2. abort 和 unwind
    3. Option 和 unwrap
      1. 使用 ? 解包 Option
      2. 组合器:map
      3. 组合器:and_then
      4. 默认值:or、or_else、get_or_insert、get_or_insert_with
    4. Result
      1. Result 的 map
      2. Result 的别名
      3. 提前返回
      4. 引入 ?
    5. 多种错误类型
      1. 从 Option 中提取 Result
      2. 定义错误类型
      3. 使用 Box 将错误装箱
      4. ? 的其他用途
      5. 包装错误
    6. 遍历 Result
  20. 标准库类型
    1. Box、栈和堆
    2. Vectors
    3. 字符串
    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. 不安全操作
    1. 内联汇编
  24. 兼容性
    1. 原始标识符
  25. 补充
    1. 文档
    2. Playground