>>611
その場合でも、Rustならば戻り値をResultにしてこのように見やすくプログラミングしやすい。
fn process() -> Result<(), Error> {
foo()?;
bar()?;
baz()
}
fn hoge() -> Result<(), Error> {
begin()?;
match process() {
Ok(()) => {
commit()?;
Ok(())
},
Err(err) => {
rollback();
Err(err)
},
}
}
>>613
その通り
?オペレータは、ResultがErr(err)の時にreturn Err(err);する。
正確には便利に変換してくれるreturn Err(From::from(err));だが本筋でないので略。
探検
C vs C++ vs Rust Part.2
■ このスレッドは過去ログ倉庫に格納されています
615デフォルトの名無しさん
2022/01/13(木) 16:57:19.52ID:2BXAobev■ このスレッドは過去ログ倉庫に格納されています
