← Rust コース
44. Drop — 値が消えるときの処理
Drop トレイトを実装すると、値がスコープを抜けて破棄される瞬間に呼ばれる処理を書けます。fn drop(&mut self) に後片付けのコードを書いておけば、所有者が消えるタイミングでコンパイラが自動で呼び出してくれます。
ファイルやネットワーク接続を閉じる、ロックを解放する、といった後始末はこの仕組みで自動化されます。閉じ忘れが構造的に起きないのが利点で、Box がヒープのメモリを自動で解放できるのも Drop の実装によるものです。
drop メソッドを自分で直接呼ぶことはできず、早めに手放したいときは標準の drop(値) 関数を使います。複数の値は宣言と逆の順番で破棄される、という点も出力で確認してみてください。
▶ サンプルコードを実行してみよう(自由に書き換えてOK)
Rust
サンプルコードで身につける(5本) →
学んだ概念を、素朴な例から実務寄りの例まで5つの具体例で確認します。
公式ドキュメントで詳しく ↗