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.