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.