【问题标题】:How do I provide type annotations inline when calling a non-generic function?调用非泛型函数时如何提供内联类型注释?
【发布时间】:2015-02-02 22:10:09
【问题描述】:

我知道在 Rust 中提供类型注释的一种方法是声明一个中间变量,以便编译器知道返回类型:

use std::num::Int
let max_usize: usize = Int::max_value();
println!("Max usize: {}", max_usize);

但我怎样才能提供类型注释“内联”?

例如,我不希望以下内容未经修改就可以工作,因为根本没有类型注释,但这是我所追求的:

use std::num::Int
println!("Max usize: {}", Int::max_value());

我尝试了Int::max_value::<usize>(),它给出了error: too many type parameters provided: expected at most 0 parameter(s), found 1 parameter(s) - 这是有道理的,因为max_value() 不是通用的。

在 Scala 中,我会写 myFunction(someDog: Animal) 而不是写

val someAnimal: Animal = someDog
myFunction(someAnimal)

Rust 中有等价的语法吗?

【问题讨论】:

    标签: rust


    【解决方案1】:

    像这样:

    fn main() {
        use std::num::Int;
        println!("Max usize: {}", <usize as Int>::max_value());
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      • 2023-03-11
      • 2018-07-23
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      相关资源
      最近更新 更多