Drop
https://doc.rust-lang.org/book/drop.html
Drop
というtraits
について。
変数が消える時に、何かやらせたい時に使う。デストラクタ
ってやつですね。
struct HasDrop; impl Drop for HasDrop { fn drop(&mut self) { println!("Dropping!"); } } struct Firework { strength: i32, } impl Drop for Firework { fn drop(&mut self) { println!("BOOM times {}!!!", self.strength); } } fn main() { println!("one"); { let x = HasDrop; println!("two"); } println!("three"); let firecracker = Firework { strength: 1 }; let tnt = Firework { strength: 100 }; }
$ cargo run # warning等は省略 one two Dropping! three BOOM times 100!!! BOOM times 1!!!