引用
像 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: &i32
和let ref_x: &mut i32
之间的区别。第一个表示一个可变引用,它可以绑定到不同的值,而第二个表示引用一个可变值。