📜  Rust智能指针

📅  最后修改于: 2021-01-08 13:56:21             🧑  作者: Mango

防锈智能指针

  • 智能指针是一种数据结构,其行为类似于指针,同时提供诸如内存管理或绑定检查之类的附加功能。
  • 智能指针跟踪其指向的内存,还用于管理其他资源,例如Fils句柄和网络连接。
  • 智能指针最初是在C++语言中使用的。
  • 引用也是一种指针,但是除了引用数据之外,它没有其他功能。引用由'&'运算符。
  • 智能指针提供了参考所提供的功能以外的其他功能。智能指针提供的最常见功能是“引用计数智能指针类型”。通过跟踪所有者,此功能使我们能够拥有多个数据所有者,如果没有所有者,那么它将清除数据。
  • 引用是仅借用数据的指针,而智能指针是拥有它们所指向的数据的指针。

智能指针的类型:

  • Box :Box 是一个智能指针,它指向分配在类型T的堆上的数据,其中“ T”是数据的类型。它用于将数据存储在堆而不是堆栈上。
  • Deref :Deref 是一个智能指针,用于自定义解除引用运算符(*)的行为。
  • Drop :Drop 是一个智能指针,用于在变量超出范围时从堆内存中释放空间。
  • Rc :Rc 代表参考计数指针。它是一个智能指针,用于记录对堆中存储的值的引用数量。
  • RefCell :RefCell 是一个智能指针,即使数据是不可变的,它也允许您借用可变数据。此过程称为内部可变性。