引用
如同 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: &i32
与let ref_x: &mut i32
之间的区别。第一条语句声明了一个可变引用,所以我们可以修改这个引用所绑定的值;第二条语句声明了一个指向可变变量的引用。