介绍

本系列录制的视频主要放在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标志相关推荐

  1. 010 Rust死灵书之Drop检查

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust相关的源码资料在:https://github.com/anonymousGiga 笔记内容 一段代码 struct Inspect ...

  2. 029 Rust死灵书之Vec实现Drop

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 详 ...

  3. 026 Rust死灵书之实现Vec

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 从 ...

  4. 019 Rust死灵书之资源管理

    本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 基于所有 ...

  5. 024 Rust死灵书之Send和Sync

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source S ...

  6. 035 Rust死灵书之Vec处理零尺寸类型

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 详 ...

  7. 033 Rust死灵书之重构Vec

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 详 ...

  8. 032 Rust死灵书之Vec的IntoIter

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 详 ...

  9. 030 Rust死灵书之让Vec支持slice

    介绍 本系列录制的视频主要放在B站上Rust死灵书学习视频 Rust 死灵书相关的源码资料在https://github.com/anonymousGiga/Rustonomicon-Source 详 ...

最新文章

  1. 三层之抽象工厂加反射实例
  2. CTF -杂项密码学,常见密码介绍(三)
  3. postgresql中表的继承及分区表(四)
  4. 分布式离线计算—MapReduce—基础介绍
  5. MLFlow︱机器学习工作流框架:介绍(一)
  6. 第三方app_官方打不过第三方APP之 知乎 篇
  7. 物联网行业系列深度报告 附下载
  8. gbk与gb2312并不一样
  9. C++统计输入字符串各个大写字母的个数
  10. github上传代码步骤
  11. 80和443端口的区别
  12. 东莞银行计算机笔试题,中国银行笔试考什么内容
  13. oracle分区 varchar2,oracle分区怎么使用
  14. 我与OutLook有个约会
  15. 奥特曼系列ol进不去服务器,奥特曼系列OL闪退怎么办?解决方案
  16. 区块链100讲:16进制数据的编码/解码算法
  17. Q1利润不及预期股价仍大涨,疫情“摧残”下Facebook求生有新机?
  18. 人流量统计(opencv,caffe,dlib)
  19. Python+OpenCV图像处理(五)——图像阈值和二值化
  20. 在号码池取连续号码的算法

热门文章

  1. 研发安全环境解决方案(一):网络接入的安装和配置
  2. 新近手机测试工具速递
  3. mysql groupy by对多个字段进行分组
  4. 【观察】DXC Technology:回归初心,再聚焦与新布局
  5. 微信小程序获取用户信息“授权失败”场景的处理
  6. VS2019 MFC 对话框拆分窗格
  7. 提高C++程序运行效率,减少运行时间的方法
  8. “笨办法”学Python3,Zed A. Shaw,习题21
  9. “笨办法”学Python3,Zed A. Shaw, 习题3
  10. 积跬步,聚小流------div模拟select,让select美美哒