第 22 章:智能指针
掌握 Rust 智能指针的类型和用法。
学习目标
完成本章学习后,你将掌握:
- 理解智能指针的概念
- 掌握 Box<T> 的堆分配
- 使用 Rc<T> 实现多重所有权
- 使用 RefCell<T> 实现内部可变性
- 理解 Arc<T> 和 Weak<T> 的用途
章节内容
智能指针概述
- 智能指针概述 - 智能指针概念、Deref 和 Drop trait
Box
- Box - 堆分配、递归类型、trait 对象
Rc
- Rc - 引用计数、多重所有权、Rc 与 RefCell
RefCell
- RefCell - 内部可变性、运行时借用检查
Arc 与 Weak
- Arc 与 Weak - 线程安全的引用计数、弱引用
实战总结
- 实战总结 - 智能指针选择指南
预计学习时间
- 基础学习:2.5 小时
- 练习巩固:1.5 小时
- 总计:4 小时
实战项目
本章将实现一个双向链表数据结构。
常见问题
- Box 和 Rc 如何选择?
- RefCell 会影响性能吗?
本地实验
本章示例代码位于 examples/ 目录。
bash
cargo run --example 02-box
cargo check --examples