主要内容包括:
- 基础概念:指针,引用,智能指针
- 智能指针
Box<T>
,Deref
和Drop
智能指针Box<T>
Box <T>
是一个智能指针,指向在类型为T的堆上分配的数据。Box <T>
允许将数据存储在堆而不是栈上。
Box <T>
是一个拥有的指针。
除了将数据存储在堆上之外,Box
没有性能开销。
当Box
离开作用域时,会调用析构函数来销毁所有内部对象并释放内存。
使用Box <T>
将数据存储在堆上。
Box <T>
主要用于在堆上存储数据。下面通过一个简单的例子来理解这一点:
fn main()
{
let a = Box :: new(1);
print!("value of a is : {}", a);
}
执行上面示例代码,得到以下结果:
value of a is : 1
在上面的示例中, a包含Box的值, 该Box值指向数据1。如果我们访问Box的值, 则程序将输出” 1″。程序结束时, Box被解除分配。Box存储在栈上, 它指向的数据存储在堆上。
下面来看看上面例子的图解表示:
相关内容:
https://www.yiibai.com/rust/rust-box-t.html
【Rust每周一知】理解智能指针Box<T>