upadte advance-trait.md

pull/237/head
sunface 3 years ago
parent 6b694ef687
commit 6b5ab2183b

@ -269,7 +269,10 @@ fn main() {
<Type as Trait>::function(receiver_if_method, next_arg, ...);
```
对于关联函数,其没有一个方法接收器( `receiver` ),故只会有其他参数的列表。**可以选择在任何函数或方法调用处使用完全限定语法**,但是,很多时候我们可以省略,因为 Rust 能够从程序中的其他信息中推导出这部分。只有当存在多个同名实现时Rust 需要帮助以便知道我们希望调用哪个实现时,才需要使用这个较为冗长的语法。
上面定义中,第一个参数是方法接收器`receiver`(三种`self`),只有方法才拥有,例如关联函数就没有`receiver`。
完全限定语法可以用于任何函数或方法调用那么我们为何很少用到这个语法原因是Rust编译器能根据上下文自动推导出调用的路径因此大多数时候我们都无需使用完全限定语法。只有当存在多个同名函数或方法且Rust无法区分出你想调用的目标函数时该用法才能真正有用武之地。
## 特征定义中的特征约束

Loading…
Cancel
Save