所有権
すべての変数束縛には、それが有効な スコープ があり、そのスコープ外で変数を使用するとエラーになります。
// 著作権 2023 Google LLC // SPDX-License-Identifier: Apache-2.0 struct Point(i32, i32); fn main() { { let p = Point(3, 4); dbg!(p.0); } dbg!(p.1); }
その変数がその値を 所有している と言います。すべての Rust の値には、常にちょうど 1 つの所有者がいます。
スコープの終わりで、変数は ドロップ され、データは解放されます。ここではデストラクタが実行され、リソースを解放できます。
ガベージコレクションの実装に慣れている受講者であれば、ガベージコレクタが「ルート」の集合から開始して、到達可能なすべてのメモリを見つけることを知っているでしょう。Rust の「単一所有者」の原則も、これに似た考え方です。