Rust标准库中常用Trait之Copy/Clone

        我们先了解一下Copy trait,它是一个标记trait,没有任何方法。
trait Copy:Clone{}

         Copy只是简单的按位拷贝,所以它是快速高效的。我们不能自己实现Copy,只有编译器可以提供实现,但是我们可以通过使用Copy派生宏让编译器这么做。如果数据结构的所有字段都实现了 Copy,也可以用 #[derive(Copy)] 宏来为数据结构实现 Copy。
        Copy对Clone进行了细化。一个克隆(clone)操作可能很慢并且开销很大,但是拷贝(copy)操作保证是快速且开销较小的,所以拷贝是一种更快的克隆操作。如果一个类型实现了Copy,Clone实现就无关紧要了:

// 标注#[derive(Copy, Clone)]后 编译器自动生成的代码
impl Clone for T {
//clone 方法仅仅只是简单的按位拷贝
fn clone(&self) -> Self {
*self
}
}

 

Rust标准库中常用Trait之Copy/Clone最先出现在Python成神之路

版权声明:
作者:倾城
链接:https://www.techfm.club/p/8644.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>