我正在学习Rust,但是对此问题有些疑问。
这有什么区别
fn main() {
let mut s = String::from("hello");
let r1 = &s;
let r2 = &s;
}
还有这个
fn main() {
let mut s = String::from("hello");
let r1 = &mut s;
let r2 = &mut s;
}
答案 0 :(得分:1)
在第一个版本中,您借用了s
作为不可变的。即使s
是可变的,您也不能修改它,因为引用是不可变的。
就像变量一样,默认情况下也是不变的,引用也是一样。
在第二个版本中,您借用了s
作为可变变量-因此您可以使用引用对其进行修改。
有关更多详细信息,请参见The Rust Programming Language。