Rust的Drop Trait,相当于析构代码

退出前自动执行的代码。

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")};
    println!("CustomSmartPointer created.");
    drop(c);
    println!("CustomSmartPointer dropped before the end of main.");
    
}

猜你喜欢

转载自www.cnblogs.com/aguncn/p/11440526.html