017 Rust死灵书之Drop标志
介绍
本系列录制的视频主要放在B站上Rust死灵书学习视频
Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source
drop标志
变量每次被赋值或者离开作用域的时候,Rust 都需要判断是否要调用析构函数。在有条件地初始化的情况下,Rust 是如何做到这一点的呢?
Rust 实际上是在运行期判断是否销毁变量。当一个变量被初始化和反初始化时,变量会更新它的”drop 标志 “的状态。通过解析这个标志的值,判断变量是否真的需要执行 drop。
#[derive(Debug)]struct Droppable {name: &'static str,
}impl Drop for Droppable {fn drop(&mut self) {println!("> Dropping {}", self.name);}
}fn main() {let a = Droppable { name: "a" }; //a未初始化,仅仅覆盖值let b = a; //b未初始化,仅仅覆盖值let mut c = Droppable { name: "c" };println!("c = {:#?}", c);c = b; //c已经初始化,需要调用drop函数,再覆盖值println!("c = {:#?}", c);println!("Hello, world!");//离开花括号,调用a的析构函数
}
017 Rust死灵书之Drop标志相关推荐
- 010 Rust死灵书之Drop检查
介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust相关的源码资料在:https://github.com/anonymousGiga 笔记内容 一段代码 struct Inspect ...
- 029 Rust死灵书之Vec实现Drop
介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 详 ...
- 026 Rust死灵书之实现Vec
介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 从 ...
- 019 Rust死灵书之资源管理
本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 基于所有 ...
- 024 Rust死灵书之Send和Sync
介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source S ...
- 035 Rust死灵书之Vec处理零尺寸类型
介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 详 ...
- 033 Rust死灵书之重构Vec
介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 详 ...
- 032 Rust死灵书之Vec的IntoIter
介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 详 ...
- 030 Rust死灵书之让Vec支持slice
介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 详 ...
最新文章
- 三层之抽象工厂加反射实例
- CTF -杂项密码学,常见密码介绍(三)
- postgresql中表的继承及分区表(四)
- 分布式离线计算—MapReduce—基础介绍
- MLFlow︱机器学习工作流框架:介绍(一)
- 第三方app_官方打不过第三方APP之 知乎 篇
- 物联网行业系列深度报告 附下载
- gbk与gb2312并不一样
- C++统计输入字符串各个大写字母的个数
- github上传代码步骤
- 80和443端口的区别
- 东莞银行计算机笔试题,中国银行笔试考什么内容
- oracle分区 varchar2,oracle分区怎么使用
- 我与OutLook有个约会
- 奥特曼系列ol进不去服务器,奥特曼系列OL闪退怎么办?解决方案
- 区块链100讲:16进制数据的编码/解码算法
- Q1利润不及预期股价仍大涨,疫情“摧残”下Facebook求生有新机?
- 人流量统计(opencv,caffe,dlib)
- Python+OpenCV图像处理(五)——图像阈值和二值化
- 在号码池取连续号码的算法
热门文章
- 研发安全环境解决方案(一):网络接入的安装和配置
- 新近手机测试工具速递
- mysql groupy by对多个字段进行分组
- 【观察】DXC Technology:回归初心,再聚焦与新布局
- 微信小程序获取用户信息“授权失败”场景的处理
- VS2019 MFC 对话框拆分窗格
- 提高C++程序运行效率,减少运行时间的方法
- “笨办法”学Python3,Zed A. Shaw,习题21
- “笨办法”学Python3,Zed A. Shaw, 习题3
- 积跬步,聚小流------div模拟select,让select美美哒