- 简介
- 1. 安全与不安全
- 1.1. 安全与不安全的交互方式
- 1.2. 不安全代码可以做什么
- 1.3. 如何使用不安全代码
- 2. 数据布局
- 2.1. repr(Rust)
- 2.2. 奇异尺寸类型
- 2.3. 其他 repr
- 3. 所有权
- 3.1. 引用
- 3.2. 别名
- 3.3. 生命周期
- 3.4. 生命周期的限制
- 3.5. 生命周期省略
- 3.6. 无界生命周期
- 3.7. 高阶 Trait 约束
- 3.8. 子类型和变型
- 3.9. Drop 检查
- 3.10. PhantomData
- 3.11. 拆分借用
- 4. 类型转换
- 4.1. 强制转换
- 4.2. 点运算符
- 4.3. 显式类型转换
- 4.4. 转置
- 5. 未初始化内存
- 5.1. 检查
- 5.2. Drop 标志
- 5.3. 未检查
- 6. 基于所有权的资源管理
- 6.1. 构造函数
- 6.2. 析构函数
- 6.3. 泄漏
- 7. 展开
- 7.1. 异常安全
- 7.2. 中毒
- 8. 并发
- 8.1. 竞态条件
- 8.2. Send 和 Sync
- 8.3. 原子操作
- 9. 实现 Vec
- 9.1. 布局
- 9.2. 分配内存
- 9.3. Push 和 Pop
- 9.4. 释放内存
- 9.5. Deref
- 9.6. 插入和移除
- 9.7. IntoIter
- 9.8. RawVec
- 9.9. Drain
- 9.10. 处理零大小类型
- 9.11. 最终代码
- 10. 实现 Arc 和 Mutex
- 10.1. Arc
- 10.1.1. 布局
- 10.1.2. 基础代码
- 10.1.3. 克隆
- 10.1.4. Drop
- 10.1.5. 最终代码
- 11. FFI
- 12. std 的底层
- 12.1. #[panic_handler]