Result
型
Result
は失敗するかもしれない処理の結果を表現する列挙型です。
Result
を無視するとwarning
が出るのでエラーハンドリングを強制&
可視化できる!
Rust
には例外がない
エラーハンドリングをサボると可視化される仕組みがすごい
let ok_value: Result = Ok(1);
match ok_value {
Ok(v) => println!("ok value = {}", v),
Err(e) => println!("err value = {}", e),
};
//
どちらか片方の場合だけ処理したいならif let
が便利
if let Ok(v) = ok_value {
println!("ok value = {}", v);
}
// Ok
の場合は中身を返し、Err
の場合はpanic
する
assert_eq!(ok_value.unwrap(), 1);
// unwrap
と同じだが、panic
時のエラーメッセージを指定できる
assert_eq!(ok_value.expect("panic"), 1);