以下代码:
#[derive(Copy)]
enum MyEnum {
Test
}
给了我这个错误:
为什么会这样?我该如何解决?
以下代码:
#[derive(Copy)]
enum MyEnum {
Test
}
给了我这个错误:
为什么会这样?我该如何解决?
Copy
trait is a subtrait of Clone
,所以如果实现Copy
,则始终需要实现Clone
:
#[derive(Copy, Clone)]
enum MyEnum {
Test
}
这是有道理的,因为Copy
和Clone
都是复制现有对象的方法,但语义不同.Copy
可以通过复制组成对象的位来复制对象(比如C中的memcpy
).Clone
可能更昂贵,可能涉及分配内存或复制系统资源.任何可以用Copy
复制的东西也可以用Clone
复制.