Dev Study
Rust コース

25. ? 演算子 — エラーの委譲

Result を返す式の後ろに ? を付けると、「Ok なら中身を取り出して続行、Err ならその場で関数から Err を return」という処理を1文字で書けます。エラーを呼び出し元に委譲するときの定番構文です。

失敗しうる処理が何段も続くとき、毎回 match を書くとコードがネストだらけになります。実務の Rust コードでは「途中の関数は ? でエラーを上に流し、最後にまとめて処理する」というスタイルが広く使われています。

? は Result(や Option)を返す関数の中でしか使えません。main で使う場合も、例のように main の戻り値を Result にする必要があります。

▶ サンプルコードを実行してみよう(自由に書き換えてOK)

Rust
公式ドキュメントで詳しく ↗