2017-11-17 22 views
2

ブロックの戻り値の型が推定されます。関数の戻り値の型を推測するには?

fn main() { 
    let x = { 5 }; 
    println!("{}", x); 
} 

しかし、ブロックに名前を付けるときは、タイプを指定する必要があります。

fn five() -> i32 { 
    5 
} 

fn main() { 
    let x = five(); 
    println!("{}", x); 
} 

タイプの選択を避けるにはどうすればよいですか?

答えて

2

できません。 Rust explicitly prohibits this by design

しかし、大規模で複雑な戻り値の型のために、あなたは次のオプションがあります。

  • 代わりにクロージャを使用してください - それはローカルであるため、その型を推測することが許可されている
  • 戻り箱入りタイプ
  • リターン(夜間オン)an abstract type

あなたはWhat is the correct way to return an Iterator (or any other trait)?

のための答えでは、これらの具体例を見ることができます
関連する問題