我很好奇调用来自特征实现的函数的惯用方式是什么. 从技术上讲,它们可以作为显式引用传入的 struct 的函数调用,也可以作为 struct 的方法调用.我可以在Rust Book中看到前一个版本比后一个版本有一些偏好,但我个人觉得很奇怪,因为对于同一个对象,Rust Book使用方法语法来实现为 struct 实现的其他操作(不是来自特征实现的方法).
use std::rc::Rc;
fn main() {
let rc = Rc::new(5);
// Which call to clone is seen as idomatic?
let c1 = Rc::clone(&rc);
let c2 = rc.clone();
println!("{} {} {}", *rc, *c1, *c2);
}