問題一覧に戻る
中級エラー処理
問題59: map系メソッド
mapはOptionやResultの中身を変換します。成功値を変換するmap、エラーを変換するmap_errがあります。元のコンテナ構造(Some/None、Ok/Err)は保持され、中身だけが変換されます。メソッドチェーンで連続的に変換でき、関数型プログラミングの基礎です。
fn main() {
let num = Some(42);
// 値の変換
let doubled = num.(|x| x * 2);
println!("{:?}", doubled);
let result: Result<i32, &str> = Ok(10);
// Resultの値変換
let squared = result.(|x| x * x);
println!("{:?}", squared);
let err: Result<i32, &str> = Err("not found");
// エラーの変換
let err_msg = err.(|e| format!("Error: {}", e));
println!("{:?}", err_msg);
}