编者按 : 这个问题是在 Rust 1.0之前提出的,问题中的一些断言在 Rust 1.0中不一定是正确的。一些答案已经更新,以解决这两个版本。
我有这个结构
struct Triplet {
one: i32,
two: i32,
three: i32,
}
如果我把它传递给一个函数,它会被隐式复制。现在,有时我读到一些值是不可复制的,因此必须移动。
有没有可能使这个结构 Triplet
不可复制?例如,有没有可能实现一个 trait,使得 Triplet
不可复制,因此是“可移动的”?
我在哪里读到过,一个人必须实现 Clone
trait 来复制不能隐式复制的东西,但我从来没有读到过相反的情况,那就是拥有一个隐式可复制的东西,并使它不能隐式复制,所以它会移动。
这说得通吗?