【问题标题】:Why the need to specific sum return type in Rust?为什么需要在 Rust 中指定总和返回类型?
【发布时间】:2023-01-07 17:18:04
【问题描述】:

在 Rust 中,如果没有为 sum 函数指定 i32 的返回类型,编译器会报错。

fn some_function(a: [i32; 4]) {
    println!("{}", a.iter().sum::<i32>());
    // println!("{}", a.iter().sum()); -> ERROR
}

为什么不能从传递给函数的类型(i32 的数组)中推断出 sum 的类型?

【问题讨论】:

    标签: arrays rust sum iterable


    【解决方案1】:

    您可能希望求和为更大的整数类型,以防结果不合适。作为程序员,必须在这里做出决定(权衡取舍)。

    如果你只是想避免使用 turbofish ::&lt;i32&gt; 语法,你可以将结果存储到一个中间(类型化)变量中:

    let result: i64 = a.iter().sum::<i32>();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-08
      • 2013-05-28
      • 1970-01-01
      相关资源
      最近更新 更多