Result のエイリアス
特定の Result 型を何度も再利用したい場合はどうすればよいでしょうか? Rust ではエイリアスを作成できることを思い出してください。便利なことに、 対象となる特定の Result 用にエイリアスを定義できます。
モジュールレベルでは、エイリアスの作成が特に役立つことがあります。特定のモジュールで 見つかるエラーは、多くの場合同じ Err 型を持つため、単一のエイリアスで関連する すべての Result を簡潔に定義できます。これは非常に有用なので、std ライブラリでさえ その 1 つである io::Result を提供しています!
構文を示す簡単な例を見てみましょう。
use std::num::ParseIntError; // エラー型が `ParseIntError` である `Result` のジェネリックエイリアスを定義します。 type AliasedResult<T> = Result<T, ParseIntError>; // 上記のエイリアスを使用して、特定の `Result` 型を参照します。 fn multiply(first_number_str: &str, second_number_str: &str) -> AliasedResult<i32> { first_number_str.parse::<i32>().and_then(|first_number| { second_number_str.parse::<i32>().map(|second_number| first_number * second_number) }) } // ここでも、このエイリアスによって少し記述を短くできます。 fn print(result: AliasedResult<i32>) { match result { Ok(n) => println!("n is {}", n), Err(e) => println!("Error: {}", e), } } fn main() { print(multiply("10", "2")); print(multiply("t", "2")); }