为什么Rust不会阻止我声明多个可变引用?

时间:2019-12-17 18:52:48

标签: rust borrow-checker

我正在从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。

0 个答案:

没有答案