Rust 如何使用turbofish算子实现泛型特征

Rust 如何使用turbofish算子实现泛型特征,rust,traits,Rust,Traits,我有以下共性特征: trait A<T> { fn foo(&self) -> T; } 当我调用methodfoo时,我可以指定变量的类型,并且该类型可以工作: let value: usize = s.foo(); 但我怎么能对turbofish操作员做同样的事情呢 我尝试了以下几点,但没有成功: let text = s::<usize>.foo(); let text = s.foo::<usize>(); let text

我有以下共性特征:

trait A<T> {
    fn foo(&self) -> T;
}
当我调用method
foo
时,我可以指定变量的类型,并且该类型可以工作:

let value: usize = s.foo();
但我怎么能对turbofish操作员做同样的事情呢

我尝试了以下几点,但没有成功:

let text = s::<usize>.foo();
let text = s.foo::<usize>();
let text = s.::<usize>foo();
let text=s::.foo();
让text=s.foo::();
设text=s.::foo();

如何使用此运算符而不是向变量提供类型?

您不能这样做,因为“turbofish”运算符是用于为某些对象指定泛型参数的语法,但您的方法不是泛型的,即使它是在泛型特征中定义的,因此没有要指定的泛型参数

您可以使用显式命名特征,这是通用的:

let text=A:::foo(&s);

关于该操作员的参考文件说明了什么?这也是相关的。(被骗者适用于这个问题:
A:::foo&s)
)。完美。谢谢
let text = s::<usize>.foo();
let text = s.foo::<usize>();
let text = s.::<usize>foo();
let text = A::<usize>::foo(&s);