Rust 编程视频教程(进阶)——009 智能指针

视频地址

头条地址:https://www.ixigua.com/i6775861706447913485
B站地址:https://www.bilibili.com/video/av81202308/

讲解内容

1、指针是一个包含内存地址的变量。这个地址指向一些其它的数据。
智能指针是一类数据结构,它们表现类似于指针,但是也拥有额外的元数据,最明显的,它们拥有一个引用计数。引用计数记录智能指针总共有多少个所有者,并且当没有任何所有者时清除数据。
普通引用和智能指针的一个额外区别是:引用只是只借用数据的指针,而智能指针则是拥有它们指向的数据。

2、智能指针通常使用结构体实现。智能指针区别于常规结构体的显著特征在于其实现了Deref和Drop trait。
(1)Deref trait允许智能指针结构体实例表现的像引用一样,这样就可以编写即用于引用,又用于智能指针的代码。
(2)Drop trait允许我们自定义当智能指针离开作用域时执行的代码。

3、几个标准库中的智能指针:
Box,用于在堆上分配;
Rc,一个引用计数类型,其数据可以有多个所有者;
Ref和RefMut,通过RefCell<T访问>,一个在运行时而不是在编译时执行借用规则的类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值