Sahiplik
Tüm değişken bağlamalarının (variable bindings) geçerli oldukları bir kapsamı (scope) vardır ve bir değişkeni kapsamı dışında kullanmak bir hatadır:
struct Point(i32, i32); fn main() { { let p = Point(3, 4); dbg!(p.0); } dbg!(p.1); }
Değişkenin değeri sahiplendiğini söyleriz. Her Rust değerinin her zaman tam olarak “bir” sahibi vardır.
Kapsamın (scope) sonunda, değişken düşürülür (dropped) ve veriler serbest bırakılır (free). Kaynakları serbest bırakmak için burada bir yıkıcı (destructor) çalışabilir.
This slide should take about 5 minutes.
Çöp toplama (garbage collection) gerçekleştirmelerine (implementations) aşina olan öğrenciler, bir çöp toplayıcının tüm erişilebilir belleği (reachable memory) bulmak için bir dizi “kök (roots)” ile başladığını bilirler. Rust’ın “tek sahip (single owner)” ilkesi benzer bir fikirdir.