Referencias

Al igual que C++, Rust tiene referencias:

fn main() {
    let mut x: i32 = 10;
    let ref_x: &mut i32 = &mut x;
    *ref_x = 20;
    println!("x: {x}");
}

Algunas notas:

  • Debemos desreferenciar ref_x al asignarle un valor, de forma similar a los punteros de C y C++.
  • Rust realizará una desreferencia automática en algunos casos, en especial al invocar métodos (prueba ref_x.count_ones()).
  • Las referencias que se declaran como mut se pueden vincular a distintos valores durante su tiempo de vida.

Puntos clave:

  • Ten en cuenta la diferencia entre let mut ref_x: &i32 y let ref_x: &mut i32. La primera representa una referencia mutable que se puede vincular a distintos valores, mientras que la segunda representa una referencia a un valor mutable.