如何推断函数的返回类型?

cev*_*ing 5 type-inference rust

推断出块的返回类型。

fn main() {
    let x = { 5 };
    println!("{}", x);
}
Run Code Online (Sandbox Code Playgroud)

但是,当我给块命名时,我必须指定一个类型。

fn five() -> i32 {
    5
}

fn main() {
    let x = five();
    println!("{}", x);
}
Run Code Online (Sandbox Code Playgroud)

如何避免选择类型?

Jan*_*ner 7

你不能。Rust 明确地禁止这样做

但是,对于大型和复杂的返回类型,您可以使用以下选项:

  • 改用闭包-由于它是本地的,因此可以推断其类型
  • 返回盒装类型
  • 返回一个抽象类型

您可以在返回迭代器(或任何其他特征)的正确方法是什么的答案中看到这些示例的实际示例