RustでDropを実装してデストラクタ的なことをする

struct Jiisan {
    name: String,
}

impl Jiisan {
    fn attack(&self) {
        println!("{}の攻撃", &self.name);
    }
}

impl Drop for Jiisan {
    fn drop(&mut self) {
        println!("わしの名は{}。今から死ぬ。", self.name);
    }
}

fn main() {
    let a = Jiisan {
        name: "山下".into(),
    };
    let b = Jiisan {
        name: "達郎".into(),
    };

    a.attack();
    b.attack();
}

実行結果

山下の攻撃
達郎の攻撃
わしの名は達郎。今から死ぬ。
わしの名は山下。今から死ぬ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA