小编use*_*695的帖子

使用多个嵌套作用域时会发生什么?

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);
}
Run Code Online (Sandbox Code Playgroud)

这是我运行代码时得到的:

src/main.rs:11:18: 11:19 error: use of moved value: `n` [E0382]
src/main.rs:11      println!("{}", n);
                               ^
Run Code Online (Sandbox Code Playgroud)

但变量k的范围尚未结束吗?为什么不将所有权归还给变量n

rust

4
推荐指数
1
解决办法
114
查看次数

标签 统计

rust ×1