根据Rust参考文献,在撰写本文时:
对于包含拥有指针或实现特殊trait Drop的值的类型,变量会被移动。所有其他类型都会被复制。
以下是我的代码。我希望
编译错误显示:
为什么
对于包含拥有指针或实现特殊trait Drop的值的类型,变量会被移动。所有其他类型都会被复制。
以下是我的代码。我希望
Point
是可复制的类型。但它被移动了,以下代码将无法在0.13.0-nightly上编译。struct Point {
x: uint,
y: uint
}
fn main() {
let p: Point = Point{x: 10u, y: 10u};
let p1 = p;
let p2 = p; //Error: p has been moved p1
}
编译错误显示:
note: `p` moved here because it has type `Point`, which is moved by default
为什么
Point
不被视为可复制类型?