Option型
Option型は、以下2つをもつEnumです。
- Some
- None
値がある/値がない のオプショナルな型として利用します。
また、オプショナル型のような型に対してはmatch
を使用した場合わけが使用できます。
matchを使用した場合わけ
fn return_optional() -> Option<&str> {
// 処理
}
...
match return_optional() {
Some(v) => {}
None => return Err(...),
}
Result型に変換する
match
でももちろん問題ありませんが、ok_or()
を使用しResult
型に変換することで簡潔に記述することが可能です。
fn return_optional() -> Option<&str> {
// 処理
}
...
let val = return_optional().ok_or(Err)?;
Some
に入る値はOk
にNone
に入る値はErr
に
それぞれ対応しreturnされます。