我注意到 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();
Run Code Online (Sandbox Code Playgroud)
为什么?
Sha*_*ger 20
函数语法 ( Rc::clone(&rc)) 清楚地表明您只是创建一个新的共享引用(便宜),而不是克隆被引用的底层对象(可能昂贵)。对于任意引用计数类型,可能不清楚是否发生浅复制或深复制。
这个可读性/清晰度问题导致了对用于克隆引用计数指针类型的单独接口的建议,当通过方法克隆引用计数类型时,linter 现在会发出警告。
| 归档时间: |
|
| 查看次数: |
4567 次 |
| 最近记录: |