Enums ";未实施特征克隆”;导出枚举的特征副本时

Enums ";未实施特征克隆”;导出枚举的特征副本时,enums,copy,rust,Enums,Copy,Rust,以下代码: #[derive(Copy)] enum MyEnum { Test } 给我这个错误: 错误:MyEnum类型未实现traitcore::clone::clone[E0277] 为什么会出现这种情况,我如何修复它?的,因此如果您实现了复制,则始终需要实现克隆: #[derive(Copy, Clone)] enum MyEnum { Test } 这很有意义,因为Copy和Clone都是复制现有对象的方法,但语义不同Copy只需复制构成对象的位即可复制对象(如C

以下代码:

#[derive(Copy)]
enum MyEnum {
    Test
}
给我这个错误: 错误:MyEnum类型未实现trait
core::clone::clone
[E0277]

为什么会出现这种情况,我如何修复它?

的,因此如果您实现了
复制,则始终需要实现
克隆

#[derive(Copy, Clone)]
enum MyEnum {
    Test
}

这很有意义,因为
Copy
Clone
都是复制现有对象的方法,但语义不同
Copy
只需复制构成对象的位即可复制对象(如C中的
memcpy
)<代码>克隆
的成本可能更高,可能涉及分配内存或复制系统资源。任何可以用
Copy
复制的东西也可以用
Clone
复制。这是因为trait
Copy
取决于trait
Clone
。 编译器不会尝试为您推断和实现该特性。 因此,您还必须显式地实现克隆特性

就像这样:

#[derive(Copy,Clone)]
enum MyEnum {
  Test
}

我记得在
derivate
实现中有一次关于自动派生先决条件特征的讨论;你知道它是否仍在计划中,或者是否存在导致其被拒绝的方法问题?