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