引用

像 C++ 那样,Rust 有引用:

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

一些注意事项:

  • 当赋值时,我们必须解引用 ref_x,类似于 C 和 C++ 的指针。
  • Rust 在某些情况下会自动解引用,特别是当调用方法时(试试 ref_x.count_ones())。
  • 被声明为 mut 的引用在其生命周期内可以被绑定到不同的值。
要点:
  • 请注意 let mut ref_x: &i32let ref_x: &mut i32 之间的区别。第一个表示一个可变引用,它可以绑定到不同的值,而第二个表示引用一个可变值。