【RUST】智能指针Box<T>

本文介绍了Rust中的Box<T>智能指针,它允许数据存储在堆上,解决了递归类型在编译时无法确定大小的问题。通过Box包裹递归类型如List,可以成功编译,因为Box作为指针,其大小是已知的。同时,Box还实现了Drop特性,确保在作用域结束时自动清理堆上的数据。
摘要由CSDN通过智能技术生成

最直接的智能指针是box,因为它实现了Deref trai,写法是Box<T>,它可以让数据存在堆上面,然后在栈上保持存引用,其它的功能Box暂时没有

在编译时,RUST需要知道一个类型占用空间的大小,无法知道的类型叫做recursive type,也就是递归类型

我们看看cons list这个数据结构

use crate::List::{
   Cons, Nil};

fn main() {
   
    let list = Cons(1, Cons(2, Cons(3, Nil)));
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值