下面的代码:
#[derive(Copy)]
enum MyEnum {
Test
}
给我这个错误:
错误:特质core::clone::Clone
未针对该类型实现MyEnum
[E0277]
为什么会出现这种情况,我该如何解决?
The Copy特质是Clone http://doc.rust-lang.org/std/marker/trait.Copy.html,所以你总是需要实施Clone
如果你实施Copy
:
#[derive(Copy, Clone)]
enum MyEnum {
Test
}
这是有道理的,因为两者Copy
and Clone
是复制现有对象的方法,但具有不同的语义。Copy
可以通过复制组成对象的位来复制对象(例如memcpy
in C). Clone
可能更昂贵,并且可能涉及分配内存或复制系统资源。任何可以复制的东西Copy
也可以复制Clone
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)