1. 简介
  2. 你好,世界
    1. 注释
    2. 格式化输出
      1. 调试
      2. 显示
        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. 字符串之间的转换
  8. 表达式
  9. 控制流
    1. if/else
    2. loop
      1. 嵌套和标签
      2. 从循环返回值
    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. 标准库中的示例
        1. Iterator::any
        2. 遍历迭代器
    3. 高阶函数
    4. 发散函数
  11. 模块
    1. 可见性
    2. 结构体可见性
    3. use 声明
    4. super 和 self
    5. 文件层级结构
    1. 创建一个库
    2. 使用一个库
  12. Cargo
    1. 依赖
    2. 约定
    3. 测试
    4. 构建脚本
  13. 属性
    1. dead_code
    2. cfg
      1. 自定义
  14. 泛型
    1. 函数
    2. 实现
    3. 特质
    4. 约束
      1. 测试用例:空约束
    5. 多重约束
    6. Where 子句
    7. 新类型惯用法
    8. 关联项
      1. 问题
      2. 关联类型
    9. 幽灵类型参数
      1. 测试用例:单位澄清
  15. 作用域规则
    1. RAII
    2. 所有权和移动
      1. 可变性
      2. 部分移动
    3. 借用
      1. 可变性
      2. 别名
      3. ref 模式
    4. 生命周期
      1. 显式注解
      2. 函数
      3. 方法
      4. 结构体
      5. 特质
      6. 约束
      7. 强制转换
      8. Static
      9. 省略
  16. 特质
    1. Derive
    2. 使用 dyn 返回特质
    3. 运算符重载
    4. Drop
    5. 迭代器
    6. impl Trait
    7. Clone
    8. 超特质
    9. 消除重叠特质的歧义
  17. macro_rules!
    1. 语法
      1. 指定符
      2. 重载
      3. 重复
    2. DRY (不要重复自己)
    3. DSL (领域特定语言)
    4. 可变参数
  18. 错误处理
    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. 从 Options 中提取 Result
      2. 定义错误类型
      3. 装箱错误
      4. ? 的其他用法
      5. 包装错误
    6. 迭代 Result
  19. 标准库类型
    1. Box,栈和堆
    2. 向量
    3. 字符串
    4. Option
    5. Result
      1. ?
    6. panic!
    7. HashMap
      1. 替代/自定义键类型
      2. HashSet
    8. Rc
    9. Arc
  20. 标准库杂项
    1. 线程
      1. 测试用例:map-reduce
    2. 通道
    3. 路径
    4. 文件 I/O
      1. open
      2. create
      3. read_lines
    5. 子进程
      1. 管道
      2. 等待
    6. 文件系统操作
    7. 程序参数
      1. 参数解析
    8. 外部函数接口
  21. 测试
    1. 单元测试
    2. 文档测试
    3. 集成测试
    4. 开发依赖
  22. 不安全操作
    1. 内联汇编
  23. 兼容性
    1. 原始标识符
  24. 元数据
    1. 文档
    2. Playground