当前位置: 首页 > news >正文

网站分析的优劣势网络营销是什么经营模式

网站分析的优劣势,网络营销是什么经营模式,python自学网站免费菜鸟教程,网站导航栏注明做喜欢的话别忘了点赞、收藏加关注哦#xff08;加关注即可阅读全文#xff09;#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵#xff01;(#xff65;ω#xff65;) 15.4.1. Drop trait的意义 类型如果实现了Drop trait#xff0c;就可以让程序员自定义当值…喜欢的话别忘了点赞、收藏加关注哦加关注即可阅读全文对接下来的教程有兴趣的可以关注专栏。谢谢喵(ω) 15.4.1. Drop trait的意义 类型如果实现了Drop trait就可以让程序员自定义当值离开作用域时发生的操作。例如文件、网络资源的释放等。 在某些语言中比如C/C对于某些类型程序员每次使用完这些类型的实例时都必须写代码来释放内存或资源。如果忘记了系统可能会过载并崩溃。在Rust中程序员可以指定每当值超出范围时运行特定的代码编译器将自动插入此代码。 任何类型都可以实现Drop trait而Drop trait只要求实现drop方法其参数是对self的可变引用。Drop trait在预导入模块(prelude)所以说使用它时不需要手动地引入。看个例子 struct CustomSmartPointer {data: String, }impl Drop for CustomSmartPointer {fn drop(mut self) {println!(Dropping CustomSmartPointer with data {}!, self.data);} }fn main() {let c CustomSmartPointer {data: String::from(my stuff),};let d CustomSmartPointer {data: String::from(other stuff),};println!(CustomSmartPointers created.); }结构体CustomSmartPointer下有data字段为String类型。通过impl Drop for CustomSmartPointer为CustomSmartPointer实现了Drop trait。在其里面实现drop方法参数是mut self。这个方法通常是用于释放资源的但出于演示的目的这个方法里就只打印了一句话把self里的data字段的数据打印出来。在main函数里创建了两个CustomSmartPointer的实例c存的是my stuffd存的是other stuff。最后打印CustomSmartPointers created.。 输出: CustomSmartPointers created. Dropping CustomSmartPointer with data other stuff! Dropping CustomSmartPointer with data my stuff!程序会先打印main函数的println!的内容也就是CustomSmartPointers created.。由于c和d走出作用域都在第19行花括号后所以程序接着会分别对c和d调用drop函数。在实现Drop trait时定义的drop函数是打印一句话所以这里c和d就会分别打印一句话。 15.4.2. 使用std::mem::drop来提前drop值 比较遗憾的是我们很难直接禁用自动的drop功能也没必要。因为Drop trait的目的就是进行自动的释放处理逻辑。 此外Rust不允许手动调用Drop trait的drop方法。但是可以调用标准库的std::mem::drop函数来提前drop值相当于提前调用了Drop trait的drop方法它的参数是要丢弃的值。看个例子 struct CustomSmartPointer {data: String, }impl Drop for CustomSmartPointer {fn drop(mut self) {println!(Dropping CustomSmartPointer with data {}!, self.data);} }fn main() {let c CustomSmartPointer {data: String::from(my stuff),};let d CustomSmartPointer {data: String::from(other stuff),};drop(c);println!(CustomSmartPointers created.); }在main函数中手动使用drop函数把c清理掉而d还是自动清理的这个时候的输出顺序应该是c在d前。 输出 Dropping CustomSmartPointer with data my stuff! CustomSmartPointers created. Dropping CustomSmartPointer with data other stuff!这里有些人可能会提出疑问c在走出作用域之前就被释放了那么在走出作用域后编译器会不会再调用一次drop方法导致二次释放(double free)的错误呢答案是不会Rust的设计很安全它的所有权系统会保证引用的有效而drop也只会在确定不再使用这个值时被调用1次。
http://www.ho-use.cn/article/10821226.html

相关文章:

  • 自己做网站开店建设校园网站的必要性
  • 网站开发发展方向企业管理系统项目经历怎么写简历范文
  • 网站域名的用处北京h5网站建设公司
  • 网站建设成果百度云盘网官网
  • php手机网站怎么做竞赛网站开发
  • 优秀企业网站欣赏工程承包
  • c做项目的网站叫别人做网站要多久
  • 济宁网站建设培训做视频网站赚做视频网站赚
  • 网站源码如何使用公司门户网站项目模版
  • 营销型网站建设搭建方法长春企业公司网站建设
  • 做早餐煲汤网站wordpress漏洞总结
  • 免费信息发布网站大全设计之家破解版
  • 外贸推广免费网站物流网站建设可行性报告
  • 设计做兼职最好的网站263企业邮箱腾讯登录入口
  • php做网站框架怎么推广公司
  • 办公家具网站建设费用oa办公系统网页
  • 三合一网站建设方案上海洛可可设计公司
  • 网站开发沟通中企动力网站推广
  • 怎么直接用代码做网站网页制作与设计实训目的怎么写
  • 网站毕业设计任务书住建局官网查询系统
  • 做基因结构可以用哪个网站wordpress配置报错
  • 模特公司网站源码宿州市住房 建设 官方网站
  • 唐山建网站公司办网站 哪些许可
  • 网站建设公司咋样apache与iis做网站
  • 基金网站建设需求书wordpress客户
  • 城市建设杂志社网站无锡网站建设收费
  • 网站门户建设方案h5页面是什么
  • 公司做网站怎么做wordpress开发人力资源
  • 套用别人产品图片做网站广告设计公司专业报价表
  • 网站开发主要包括的事项网站产品简介