35-通用函数调用语法
7.6.6 通用函数调用语法
有时你使用的方法与其实现的某个特征包含相同的方法集。在这种情况下,Rust为我们提供了通用函数调用语法,该语法适用于调用类型本身或来自特征的方法。请考虑如下代码:
// ufcs.rs
trait Driver {
fn drive(&self) {
println!("Driver's driving!");
}
}
struct MyCar;
impl MyCar {
fn drive(&self) {
println!("I'm driving!");
}
}
impl Driver for MyCar {}
fn main() {
let car = MyCar;
car.drive();
}
上述代码包含两个名称相同的方法drive。其中一个是固有的方法,另一个方法来自Driver特征。如果我们编译运行上述代码,将会得到以下输出:
I'm driving
如果我们想要调用Driver特征的drive方法该怎么办呢?类型的固有方法比同名的其他方法包含更高的优先级。要调用特征方法,我们可以使用通用函数调用语法(Universal Function Call Syntax,UFCS)。