Module std::clone

1.0.0 · source ·
Expand description

不能隐式复制的类型的 Clone trait。

在 Rust 中,一些简单类型是 “隐式可复制的”,当您分配它们或将它们作为参数传递时,接收者将获得一个副本,而将原始值保留在原位。 这些类型不需要分配就可以复制并且没有终结器 (即,它们不包含拥有的 boxes 或实现 Drop),因此编译器认为它们便宜且安全地进行复制。

对于其他类型,必须通过约定实现 Clone trait 并调用 clone 方法来显式复制。

基本用法示例:

let s = String::new(); // 字符串类型实现克隆
let copy = s.clone(); // 所以我们可以克隆它
Run

要轻松实现 Clone trait,还可以使用 #[derive(Clone)]。Example:

#[derive(Clone)] // 我们将克隆 trait 添加到 Morpheus 结构体
struct Morpheus {
   blue_pill: f32,
   red_pill: i64,
}

fn main() {
   let f = Morpheus { blue_pill: 0.0, red_pill: 0 };
   let copy = f.clone(); // 现在我们可以克隆它了!
}
Run

Traits

  • 通用的 trait,用于显式复制对象。

Derive Macros

  • 派生宏,生成 Clone trait 的 impl。