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