Rust克隆陷阱?

banq發表於2024-07-05


在Rust中,當你看到

let y = x.clone();

時,你想知道:

  • 這是一個廉價的引用計數增量?
  • 還是一個昂貴的分配和記憶體複製?

你可以這樣做:

let y = Arc::clone(x);

然後用一個clippy lint強制執行它:

#![deny(clippy::clone_on_ref_ptr)]

以上提示來自《十億行挑戰

網友:

  • 如果是單執行緒,那麼就 RC<>
  • 在 C 語言中,您只需這樣做:y = x;
  • 這一定是有史以來最可怕的語法。 只要為每個功能設定不同的函式就可以了?

相關文章