Ownership
Todas as associações de variáveis têm um escopo onde são válidas e é um erro usar uma variável fora de seu escopo:
struct Point(i32, i32);
fn main() {
{
let p = Point(3, 4);
println!("x: {}", p.0);
}
println!("y: {}", p.1);
}
Dizemos que a variável owns (possui) o valor. Todo valor em Rust tem precisamente um owner (dono) em todos os momentos.
No final do escopo, a variável é descartada e os dados são liberados. Um destrutor pode ser executado aqui para liberar recursos.
This slide should take about 5 minutes.
Os alunos familiarizados com implementações de coleta de lixo saberão que um coletor de lixo começa com um conjunto de “raízes” para encontrar toda a memória acessível. O princípio do “single owner” (“único dono”) do Rust é uma ideia semelhante.