我有一个类型,我可以通过它访问它的方法
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/