我正在阅读 Rust 书,它在第 4.2 节中说了以下内容:
在任何给定时间,您都可以拥有一个可变引用或任意数量的不可变引用。
但是,我在试验中发现实际上我可以在同一范围内拥有多个可变引用,而无需使用任何不安全的代码:
fn make_mut(x: &mut i32) -> &mut i32 {
x
}
fn main() {
let mut i = 1;
let ir = &mut i;
let ir2 = make_mut(ir);
*ir2 = 2;
println!("{}", *ir);
}
输出:
2
这里发生了什么?Rust 书是否过于简化了事情?有没有比 Rust 书更好的针对没有经验的 Rust 程序员的 Rust 借用检查器的信息来源?