所有権

すべての変数束縛には、それが有効な スコープ があり、そのスコープ外で変数を使用するとエラーになります。

// 著作権 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 の「単一所有者」の原則も、これに似た考え方です。