Rust克隆陷阱?


在Rust中,当你看到
let y = x.clone();

时,你想知道:

  • 这是一个廉价的引用计数增量?
  • 还是一个昂贵的分配和内存复制?
你可以这样做:

let y = Arc::clone(x);

然后用一个clippy lint强制执行它:

#![deny(clippy::clone_on_ref_ptr)]

以上提示来自《十亿行挑战

网友:

  • 如果是单线程,那么就 RC<>
  • 在 C 语言中,您只需这样做:y = x;
  • 这一定是有史以来最可怕的语法。 只要为每个功能设置不同的函数就可以了?