Dev Study
Rust コース

54. マッチガードと @ 束縛

match の腕のパターンの後ろに if 条件を足したものを「マッチガード」と呼び、パターンだけでは表せない条件で腕を絞り込めます。また x @ 1..=9 のように @ を使うと、値が範囲に一致するかを調べつつ、その値自体を変数に束縛して腕の中で使えます。

ガードは「負の数なら」「偶数なら」のような値の性質による分岐に、@ は「範囲で絞り込んだ上でその値も使いたい」場面に使います。if-else の連鎖で書くより、分岐の全体像が match に揃って読みやすくなります。

ガード付きの腕は「すべての場合を尽くしたか」の網羅性チェックに数えられません。最後にガードなしの腕(x や _)を必ず置く必要がある、というのがつまずきやすいポイントです。

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

Rust
サンプルコードで身につける(5本) →

学んだ概念を、素朴な例から実務寄りの例まで5つの具体例で確認します。

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