【问题标题】:Is Clone for copying on the heap, while Copy for copying on the stack in Rust?是克隆用于在堆上复制,而复制用于在 Rust 中的堆栈上复制?
【发布时间】:2022-10-12 21:50:48
【问题描述】:

正如标题所说,我是否正确地说 Clone 用于在堆上复制,而 Copy 用于在 Rust 中的堆栈上复制?

这基本上就是这篇文章here 的内容,但我对其正确性有疑问。

【问题讨论】:

  • 复制是按位复制。克隆是一种可以实现做任何事情的方法(以及在其类型签名约束内的任何事情)。两者都可以在堆栈和堆上使用。

标签: rust


【解决方案1】:

Clone trait 提供 clone 复制方法。堆栈或堆取决于实现和类型要求。例如,如果您正在克隆 String,复制的值将分配到堆中。如果你正在克隆一个 u8 类型的值,复制的值将被分配到堆栈上。 Copy 特征的作用与 Clone 特征的作用完全相同,但隐含。

如果每个克隆值都在堆中分配,我们就不需要分配器?

【讨论】:

    猜你喜欢
    • 2011-04-01
    • 2012-09-20
    • 2011-06-05
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 2021-12-25
    相关资源
    最近更新 更多