Rust 智能指针17 Mar 2025 | 阅读 2 分钟 - 智能指针是一种数据结构,其行为类似于指针,同时提供额外的功能,例如内存管理或边界检查。
- 智能指针跟踪它所指向的内存,也用于管理其他资源,例如文件句柄和网络连接。
- 智能指针最早用于 C++ 语言。
- 引用也是一种指针,但它除了引用数据之外没有其他附加功能。引用由“&”运算符表示。
- 智能指针提供了比引用提供的更多功能。智能指针提供的最常见的功能是“引用计数智能指针类型”。此功能使我们能够通过跟踪所有者来拥有数据的多个所有者,如果不再有所有者,它会清理数据。
- 引用只是借用数据,而智能指针拥有它们所指向的数据。
智能指针的类型
- Box<T>:Box<T> 是一个智能指针,它指向在堆上分配的数据,其类型为 T,其中“T”是数据的类型。它用于将数据存储在堆上而不是栈上。
- Deref<T>:Deref<T> 是一个智能指针,用于自定义解引用运算符 (*) 的行为。
- Drop<T>:Drop<T> 是一个智能指针,用于在变量超出范围时从堆内存中释放空间。
- Rc<T>:Rc<T> 代表引用计数指针。它是一个智能指针,用于记录堆上存储的值的引用数量。
- RefCell<T>:RefCell<T> 是一个智能指针,即使数据是不可变的,也允许你借用可变数据。这个过程被称为内部可变性。
|