gpt4 book ai didi

rust - Rust 中的 Rc::clone(&rc) 和 rc.clone() 之间有什么区别吗?是否有基于此的编译优化?

转载 作者:行者123 更新时间:2023-12-04 15:27:36 28 4
gpt4 key购买 nike

我注意到 rust 书推荐使用 Rc::clone(&rc)rc.clone()如下:

use std::rc::Rc;

let five = Rc::new(5);

// recommended
let _ = Rc::clone(&five);

// not recommended
let _ = five.clone();


为什么?

最佳答案

函数语法( Rc::clone(&rc) )清楚地表明您只是在创建一个新的共享引用(便宜),而不是克隆被引用的底层对象(可能很昂贵)。对于任意引用计数类型,可能不清楚发生的是浅拷贝还是深拷贝。

这个可读性/清晰度问题导致 proposals for a separate interface for cloning reference counted pointer types , 与 linters now warning when a reference counted type is cloned via a method .

关于rust - Rust 中的 Rc::clone(&rc) 和 rc.clone() 之间有什么区别吗?是否有基于此的编译优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61949769/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com