Box、栈和堆

在 Rust 中,所有值默认都是在栈上分配的。可以通过创建 Box<T>装箱(在堆上分配)值。一个 Box 是一个指向类型为 T 的堆分配值的智能指针。当一个 Box 超出作用域时,它的析构函数会被调用,内部对象会被销毁,并且堆上的内存会被释放。

可以使用 * 运算符来解引用 Box 值;这会移除一层间接寻址。

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX