fn main() {
let mut m = 12;
{
let n = &mut m;
*n = 13;
{
let k = n;
*k = 20;
println!("{}", k);
} // k's scope ends here, right?
println!("{}", n);
}
println!("{}", m);
}
当我运行此代码时,得到以下结果:
src/main.rs:11:18: 11:19 error: use of moved value: `n` [E0382]
src/main.rs:11 println!("{}", n);
^
但是变量k
的作用域已经结束了吗?为什么没有将所有权归还给变量n
?