为什么变量可以绑定到另一个值,即使它的所有权已经移动了?

时间:2016-05-10 14:39:02

标签: rust

在以下代码中,MyStruct { s: 5u32 }的所有权已移至y let y = x;,但为什么x.s = 6仍有效?

struct MyStruct {
    s: u32,
}

fn main() {
    let mut x = MyStruct { s: 5u32 };
    let y = x;
    x.s = 6; //why this line does not cause an error?
    println!("{}", y.s);
}

1 个答案:

答案 0 :(得分:0)

我很确定这是一个错误,因为在最后添加行println!("{}", x.s)会导致编译器抱怨。