当前位置:嗨网首页>书籍在线阅读

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)。