Володіння
Усі прив’язки змінних мають область, де вони дійсні, і використання змінної поза її областю є помилкою:
struct Point(i32, i32); fn main() { { let p = Point(3, 4); println!("x: {}", p.0); } println!("y: {}", p.1); }
Ми говоримо, що змінна володіє значенням. Кожне значення у Rust завжди має лише одного власника.
В кінці області видимості змінна знищується і дані звільняються. Тут може бути запущено деструктор, щоб звільнити ресурси.
This slide should take about 5 minutes.
Студенти, знайомі з реалізаціями збирачів сміття, знають, що збирач сміття починає роботу з набору "коренів", щоб виявити всю доступну пам'ять. Принцип "єдиного власника" у Rust має схожу ідею.