Types 在Rust中键入函数::<;类型>;()?

Types 在Rust中键入函数::<;类型>;()?,types,rust,compilation,Types,Rust,Compilation,在火箭文档中,我找到了这个结构 request.guard::<&State<MyConfig>>().await request.guard::()。等待 我理解Acthand和< >代码>但是,这个:Func:(/) >部分与我在其他主流语言中看到的完全不同的代码:代码>函数()/代码>,如C++,C语言,java,python… 最好的答案可能是给我指出关于它的正确阅读材料,因为它不是特定于框架的它被称为turbofish,用于泛型-有时在Rust编译

在火箭文档中,我找到了这个结构

request.guard::<&State<MyConfig>>().await
request.guard::()。等待
<>我理解Acthand和< <代码> >代码>但是,这个<代码>:Func:(/)<代码> >部分与我在其他主流语言中看到的完全不同的代码:代码>函数()/代码>,如C++,C语言,java,python…
最好的答案可能是给我指出关于它的正确阅读材料,因为它不是特定于框架的

它被称为turbofish,用于泛型-有时在Rust编译器无法推断某个变量的类型时使用,用于指定该变量的具体类型。

它被称为turbofish,用于泛型-有时在Rust编译器无法推断某个变量的类型时使用,用于指定该变量的具体类型。

。更准确地说,当编译器无法直接推断类型时,可以通过这种方式调用函数。现在,请注意,这个问题太宽了。与C++没有什么不同——如果你把函数定义为<代码>模板函数()…{}{代码>,你可以称它为<代码>函数()/<代码>。除了类型是
&State
之外,这是相同的。它显式指定泛型函数的类型,可能是因为无法从函数参数推断该类型(因为函数不接受任何参数)。
运算符有时被称为。。更准确地说,当编译器无法直接推断类型时,可以通过这种方式调用函数。现在,请注意,这个问题太宽了。与C++没有什么不同——如果你把函数定义为<代码>模板函数()…{}{代码>,你可以称它为<代码>函数()/<代码>。除了类型是
&State
之外,这是相同的。它显式指定泛型函数的类型,可能是因为无法从函数参数推断该类型(因为函数不接受任何参数)。
运算符有时被称为。欢迎使用堆栈溢出!这是一个很好的答案。向文档()添加一个链接将得到一个很好的答案。欢迎使用Stack Overflow!这是一个很好的答案。添加到文档()的链接将得到一个很好的答案。