Clone
is designed for arbitrary duplications: a Clone
implementation for a type T
can do arbitrarily complicated operations required to create a new T
. It is a normal trait (other than being in the prelude), and so requires being used like a normal trait, with method calls, etc.
The Copy
trait represents values that can be safely duplicated via memcpy
: things like reassignments and passing an argument by-value to a function are always memcpy
s, and so for Copy
types, the compiler understands that it doesn't need to consider those a move.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…