Rustっていいよね。
最近頑張ってrust書くようにしてます。
今日は、Resultの中身を取得する際に、unwrapを使うと思うけど、デフォルト値をいれたい。ってことが多々ある。
そんなときに複数の方法があったので、unwrap_orを使うべきか unwrap_or_elseを使うべきかについて書き溜め。
先に結論
unwrapする対象が関数なら遅延評価される unwrap_or_else , それ以外は unwrap_or。
unwrap_orに渡された引数は、先行評価されます。
関数呼び出しの結果を渡している場合は、遅延評価されるunwrap_or_elseを使用することをお勧めしているみたい。
unwrap_or_defalt は、
unwrap_or と同じなんだけど、Noneの場合、その型のデフォルト値をいれる。
補足
unwrap_orは、
「Returns the contained Some value or a provided default.」
含まれるSome値または提供されたデフォルト値を返すみたい。
一方でunwrap_or_elseは、
「Returns the contained Some value or computes it from a closure.」
含まれるSome値を返すか、クロージャから計算するみたい。
その他、詳細はドキュメント読んでね。
じゃあね〜〜〜。