引用

如同 C++ 一样,Rust 也提供了引用类型。

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

一些注意事项:

  • 就像 C 与 C++ 中的指针一样,对引用 ref_x 进行赋值时,我们必须对其解引用。
  • Rust 有时会进行自动解引用。比如调用方法 ref_x.count_ones() 时,ref_x 会被解引用。
  • 如果引用值被声明为 mut(可变引用),那么这个引用值可以在它的生命周期内被绑定为不同的值。

关键点:

  • 注意 let mut ref_x: &i32let ref_x: &mut i32 之间的区别。第一条语句声明了一个可变引用,所以我们可以修改这个引用所绑定的值;第二条语句声明了一个指向可变变量的引用。