🦀
[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