视频地址

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

源码地址

github地址:https://github.com/anonymousGiga/learn_rust

讲解内容

1、Drop trait类似于其它语言中的析构函数,当值离开作用域时执行此函数的代码。
可以为任何类型提供Drop trait的实现(但是注意,这里的类型需要用struct包含起来,用例子实现Drop for i32和Drop for String报错)。

2、实现Drop trait
例子:

struct Dog {
name: String,
}
//下面为Dog实现Drop trait
impl Drop for Dog {
fn drop( &mut self ) {
println!("Dog leave");
}
}
fn main() {
let a = Dog { name: String::from("wangcai")};
let b = Dog { name: String::from("dahuang")};
println!("At the end of main");
}
//从打印结果可以看出是离开作用域时调用了drop方法。