我有一个可以通过其方法访问的类型
SomeTrait::<T>::method()
但是我不明白那和
<SomeTrait<T>>::method()
在C++中,我期望这样:
SomeTrait<T>::method()
这两个不同吗?他们俩似乎都在
<T>
上调用了method
的SomeTrait
特化。 最佳答案
无法使用C++语法,因为它在Rust中含糊不清:在SomeTrait<T>::method()
中,第一个<
是小于运算符,还是泛型参数列表的开头?
您引用的两种方法可用于消除歧义:
<SomeTrait<T>>
称为fully qualified syntax SomeTrait::<T>
称为turbofish表示法(非官方名称)。 关于generics - Trait::<T>和<Trait <T >>有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59140724/