🚀
Rustのunwrapと?の違い
概要
unwrapと?は、Rustにおいてエラーハンドリングに使用される2つの異なる方法です。
unwrap
unwrapは、Option型やResult型の値がSomeやOkであることを前提として、値を取り出します。
もしNoneやErrだった場合は、panic!マクロが呼ばれてプログラムがクラッシュします。
つまり、unwrapはエラーハンドリングではなく、プログラムの実行中に予期しないエラーが発生した場合にのみ使用するべきです。
?
一方、?は、Result型の値を扱う際に使用される演算子で、エラーハンドリングに使用されます。
?演算子は、左側の式がOkの場合は値を返し、Errの場合はそのErrを呼び出し元に返します。
つまり、?演算子は、エラーが発生した場合にそのエラーを呼び出し元に伝えることができます。
?演算子は、Result型の値を安全に取り出すための方法であり、unwrapよりも安全で、より堅牢なコードを書くことができる認識です。
Discussion