Option
が実装するトレイトやメソッドは大量にある。
忘れた頃にいつも探しているので用途別にまとめた。
(まとめていないものもあるので要注意!)
主に一つの Option
のみが関わるメソッド。
対象の Option
が条件を満たすかを判定する。
is_some
is_none
is_some_and
is_none_or
元の Option
の写像となる値を取得する。
expect
unwrap
のパニックメッセージ指定版。unwrap
unwrap_or
unwrap_or_default
unwrap_or_else
unwrap_unchecked
map
None
で代替。map_or
map_or_else
Option<&T>::cloned
None
で代替。Option<&T>::copied
None
で代替。Option<&mut T>::cloned
None
で代替。Option<&mut T>::copied
None
で代替。filter
None
で代替。
Option
への参照から、参照を保持する Option
を生成する。
as_ref
&Option<T>
から Option<&T>
を生成。as_mut
&mut Option<T>
から Option<&mut T>
を生成。as_deref
&Option<T>
から Option<&T::Target>
を生成。as_deref_mut
&mut Option<T>
から Option<&mut T::Target>
を生成。as_pin_ref
Pin<&Option<T>>
から Option<Pin<&T>>
を生成。as_pin_mut
Pin<&mut Option<T>>
から Option<Pin<&mut T>>
を生成。From<&'a Option<T>> for Option<&'a T>
as_ref
の呼出元。From<&'a mut Option<T>> for Option<&'a mut T>
as_mut
の呼出元。
T
がトレイトを実装していれば、Option<T>
にもそれを引き継げるものが多い。
Clone for Option<T>
Clone
Copy for Option<T>
Copy
Debug for Option<T>
Debug
Default for Option<T>
Default
Eq for Option<T>
Eq
Ord for Option<T>
Ord
PartialEq for Option<T>
PartialEq
PartialOrd for Option<T>
PartialOrd
Hash for Option<T>
Hash
Option
の値を変更する。
insert
get_or_insert
get_or_insert_default
get_or_insert_with
take
None
で代替。take_if
None
で代替。replace
Option
の外への副作用を意図した処理を実行する。
inspect
二つの Option
を使うメソッド。
x
と y
の合成やその逆操作を行う。
and
None
を取得。or
None
を取得。xor
None
を取得。and_then
and
の y が生成関数で渡され、x があればそれを使用。or_else
or
の y が生成関数で渡され、x がないとそれを使用。zip
Option
からペアタプルの Option
を合成。unzip
Option
を二つの Option
に分解。入れ子を平坦化する。
flatten
Option
の入れ子を一段だけ少なくする。他の型と連携するメソッド。
Option
から Result
を生成する。
ok_or
Ok
でラップ、なければ指定値で代替。ok_or_else
Ok
でラップ、なければ生成関数で代替。transpose
Option<Result<T, E>>
から Result<Option<T>, E>
を生成。
None
なら 0 個、Some
なら 1 個の並びを生成する[1]。
as_slice
as_mut_slice
iter
iter_mut
IntoIterator for Option<T>
IntoIterator for &'a Option<T>
iter
の呼出元。IntoIterator for &'a mut Option<T>
iter_mut
の呼出元。
要素を集めて結果を生成、None
が混ざると結果も None
になる。
Sum<Option<U>> for Option<T>
Product<Option<U>> for Option<T>
FromIterator<Option<A>> for Option<V>
注: FromIterator
と IntoIterator
は逆操作というわけではない。