- 介绍
- 1. Hello World❱ 
- 1.1. 注释
- 1.2. 格式化打印❱ 
- 1.2.1. 调试 Debug
- 1.2.2. 显示 Display❱ 
- 1.2.2.1. 测试实例:列表
 
- 1.2.3. 格式化
 
 
- 2. 原生类型❱ 
- 2.1. 字面量和运算符
- 2.2. 元组
- 2.3. 数组和切片
 
- 3. 自定义类型❱ 
- 3.1. 结构体
- 3.2. 枚举❱ 
- 3.2.1. use
- 3.2.2. C 风格用法
- 3.2.3. 测试实例:链表
 
- 3.3. 常量
 
- 4. 变量绑定❱ 
- 4.1. 可变性
- 4.2. 作用域和遮蔽
- 4.3. 先声明
- 4.4. 冻结
 
- 5. 类型❱ 
- 5.1. 类型转换
- 5.2. 字面量
- 5.3. 类型推断
- 5.4. 别名
 
- 6. 转换❱ 
- 6.1. From 和 Into
- 6.2. TryFrom 和 TryInto
- 6.3. String 类型转换
 
- 7. 表达式
- 8. 控制流❱ 
- 8.1. if/else
- 8.2. loop❱ 
- 8.2.1. 嵌套和标签
- 8.2.2. 在 loop 中返回值
 
- 8.3. while
- 8.4. for 和 range
- 8.5. match❱ 
- 8.5.1. 解构❱ 
- 8.5.1.1. 元组
- 8.5.1.2. 数组/切片
- 8.5.1.3. 枚举
- 8.5.1.4. 指针/引用
- 8.5.1.5. 结构体
 
- 8.5.2. 守卫
- 8.5.3. 绑定
 
- 8.6. if let
- 8.7. let-else
- 8.8. while let
 
- 9. 函数❱ 
- 9.1. 方法
- 9.2. 闭包❱ 
- 9.2.1. 捕获
- 9.2.2. 作为输入参数
- 9.2.3. 类型匿名
- 9.2.4. 输入函数
- 9.2.5. 作为输出参数
- 9.2.6. std 中的例子❱ 
- 9.2.6.1. Iterator::any
- 9.2.6.2. 通过迭代器搜索
 
 
- 9.3. 高阶函数
- 9.4. 发散函数
 
- 10. 模块❱ 
- 10.1. 可见性
- 10.2. 结构体可见性
- 10.3. use 声明
- 10.4. super 和 self
- 10.5. 文件分层
 
- 11. Crates❱ 
- 11.1. 创建库
- 11.2. 使用库
 
- 12. Cargo❱ 
- 12.1. 依赖
- 12.2. 约定
- 12.3. 测试
- 12.4. 构建脚本
 
- 13. 属性❱ 
- 13.1. dead_code
- 13.2. Crates
- 13.3. cfg❱ 
- 13.3.1. 自定义
 
 
- 14. 泛型❱ 
- 14.1. 函数
- 14.2. 实现
- 14.3. 特质
- 14.4. 约束❱ 
- 14.4.1. 测试实例:空约束
 
- 14.5. 多重约束
- 14.6. Where 分句
- 14.7. 新类型惯用法
- 14.8. 关联项❱ 
- 14.8.1. 问题
- 14.8.2. 关联类型
 
- 14.9. 虚类型参数❱ 
- 14.9.1. 测试实例:单位澄清
 
 
- 15. 作用域规则❱ 
- 15.1. RAII
- 15.2. 所有权和移动❱ 
- 15.2.1. 可变性
- 15.2.2. 部分移动
 
- 15.3. 借用❱ 
- 15.3.1. 可变性
- 15.3.2. 别名
- 15.3.3. ref 模式
 
- 15.4. 生命周期❱ 
- 15.4.1. 显式注解
- 15.4.2. 函数
- 15.4.3. 方法
- 15.4.4. 结构体
- 15.4.5. 特质
- 15.4.6. 约束
- 15.4.7. 强制转换
- 15.4.8. 静态
- 15.4.9. 省略
 
 
- 16. 特质❱ 
- 16.1. 派生
- 16.2. 使用 dyn 返回 trait
- 16.3. 运算符重载
- 16.4. Drop
- 16.5. 迭代器
- 16.6. impl Trait
- 16.7. 克隆
- 16.8. 父特质
- 16.9. 消除重叠特质的歧义
 
- 17. macro_rules!❱ 
- 17.1. 语法❱ 
- 17.1.1. 指示符
- 17.1.2. 重载
- 17.1.3. 重复
 
- 17.2. DRY(不要重复自己)
- 17.3. DSL(领域特定语言)
- 17.4. 可变参数
 
- 18. 错误处理❱ 
- 18.1. panic
- 18.2. abort 和 unwind
- 18.3. Option 和 unwrap❱ 
- 18.3.1. 使用 ? 解包 Option
- 18.3.2. 组合器:map
- 18.3.3. 组合器:and_then
- 18.3.4. 默认值:or、or_else、get_or_insert、get_or_insert_with
 
- 18.4. Result❱ 
- 18.4.1. Result 的 map
- 18.4.2. Result 的别名
- 18.4.3. 提前返回
- 18.4.4. 引入 ?
 
- 18.5. 多种错误类型❱ 
- 18.5.1. 从 Option 中提取 Result
- 18.5.2. 定义错误类型
- 18.5.3. 使用 Box 将错误装箱
- 18.5.4. ? 的其他用途
- 18.5.5. 包装错误
 
- 18.6. 遍历 Result
 
- 19. 标准库类型❱ 
- 19.1. Box、栈和堆
- 19.2. Vectors
- 19.3. 字符串
- 19.4. Option
- 19.5. Result❱ 
- 19.5.1. ?
 
- 19.6. panic!
- 19.7. HashMap❱ 
- 19.7.1. 更改或自定义键类型
- 19.7.2. HashSet
 
- 19.8. Rc
- 19.9. Arc
 
- 20. 标准库中的其他内容❱ 
- 20.1. 线程❱ 
- 20.1.1. 测试实例:map-reduce
 
- 20.2. 信道
- 20.3. 路径
- 20.4. 文件 I/O❱ 
- 20.4.1. open
- 20.4.2. create
- 20.4.3. read_lines
 
- 20.5. 子进程❱ 
- 20.5.1. 管道
- 20.5.2. 等待
 
- 20.6. 文件系统操作
- 20.7. 程序参数❱ 
- 20.7.1. 参数解析
 
- 20.8. 外部函数接口
 
- 21. 测试❱ 
- 21.1. 单元测试
- 21.2. 文档测试
- 21.3. 集成测试
- 21.4. 开发依赖
 
- 22. 不安全操作❱ 
- 22.1. 内联汇编
 
- 23. 兼容性❱ 
- 23.1. 原始标识符
 
- 24. 补充❱ 
- 24.1. 文档
- 24.2. Playground