🦞

[Rust] Resultのメソッド早見表

2022/03/25に公開

Result

Method Ok(5) Err("失敗") 動作
is_ok() true false Ok か?
unwrap() 5 ! Ok なら値
unwrap_unchecked() 5 ! Ok なら値。unsafe が必要
expect("大失敗") 5 ! Ok なら値。Err 時の文言必須
unwrap_or(999) 5 999 Ok なら値で Err なら補完
unwrap_or_else(|_| 999) 5 999
unwrap_or_default() 5 0
map_or(999, |e| e * 2) 10 999 Ok なら {} で Err なら補完
map_or_else(|_| 999, |e| e * 2) 10 999
map(|e| e * 2) Ok(10) Err("失敗") Ok なら {} を Ok で返す
and_then(|e| Ok(e * 2)) Ok(10) Err("失敗") Ok なら {} を Result で返す
and_then::<i32, _>(|_| Err("x")) Err("x") Err("失敗")
is_err() false true Err か?
expect_err("xxx") ! "失敗" Err なら値。Ok 時の文言必須
unwrap_err_unchecked() ! "失敗" Err なら値。unsafe が必要
map_err(|e| format!("大{}", e)) Ok(5) Err("大失敗") Err なら {} を Err で返す
err() None Some("失敗") Err なら Some 化
and(Ok(6)) Ok(6) Err("失敗") Ok を真として AND
or::<i32>(Ok(6)) Ok(5) Ok(6) Ok を真として OR
ok() Some(5) None Ok なら Some 化

Discussion