🦀
[Rust] Optionのメソッド早見表
Method | Some(5) | None | 動作 |
---|---|---|---|
is_some() | true | false | Some か? |
unwrap() | 5 | ! | Some なら値 |
unwrap_unchecked() | 5 | ! | Some なら値。unsafe が必要 |
expect("失敗") | 5 | ! | Some なら値。エラー文言必須 |
unwrap_or(999) | 5 | 999 | Some なら値で None なら補完 |
unwrap_or_else(|| 999) | 5 | 999 | 〃 |
unwrap_or_default() | 5 | 0 | 〃 |
map_or(999, |e| e * 2) | 10 | 999 | Some なら {} で None なら指定値 |
map_or_else(|| 999, |e| e * 2) | 10 | 999 | Some なら {} で None なら {} |
map(|e| e * 2) | Some(10) | None | Some なら {} を Some で返す |
and_then(|e| Some(e * 2)) | Some(10) | None | Some なら {} を Option で返す |
and_then::<i32, _>(|_| None) | None | None | Some なら {} を Option で返す |
filter(|e| e % 2 == 0) | None | None | Some かつ {} が true なら残す |
filter(|e| e % 2 == 1) | Some(5) | None | 〃 |
ok_or("失敗") | Ok(5) | Err("失敗") | Result 型に変換 |
ok_or_else(|| "失敗") | Ok(5) | Err("失敗") | 〃 |
is_none() | false | true | None か? |
zip(Some(6)) | Some((5, 6)) | None | Some なら値を追加 |
and(Some(6)) | Some(6) | None | Some を真として AND |
or(Some(6)) | Some(5) | Some(6) | Some を真として OR |
xor(Some(6)) | None | Some(6) | Some を真として XOR |
insert(6) | 6 (元: Some(6)) | 6 (元: Some(6)) | 破壊的。None でもセット |
replace(6) | Some(5) (元: Some(6)) | None (元: Some(6)) | 〃 |
get_or_insert(6) | 5 (元: Some(5)) | 6 (元: Some(6)) | 破壊的。None ならセット |
get_or_insert_with(||6) | 5 (元: Some(5)) | 6 (元: Some(6)) | 〃 |
take() | Some(5) (元: None) | None (元: None) | 破壊的。移動して元は None |
Discussion