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);
}
  • No final do escopo, a variável é eliminada (“dropada”) e os dados são liberados.
  • Um destrutor pode ser executado aqui para liberar recursos.
  • Dizemos que a variável possui (owns) o valor.