我正在从The Rust Programming Language学习Rust,并且在正在编译本不应该编译的代码时遇到了WTF。
Rust has a rule that you can have only 1 mutable reference to a given data in a particular scope.这意味着该代码不建议编译:
fn main() {
let mut s1 = String::from("Hello");
let r1 = &mut s1;
let r2 = &mut s1;
//println!("{} {}", r1, r2);
}
此编译没有错误!
仅当我取消注释println!
时,才会发生预期的错误。为什么让我声明多个引用?当我声明多个可变引用而不是使用它们时,停止我不是更有意义吗?
这是怎么回事?我正在使用Rust 1.39.0。