パターンマッチングとは?
ぱたーんまっちんぐ
パターンマッチングとは、値の構造や条件に対してパターンを照合し、それに応じた処理を行うプログラミングの制御構文です。
パターンマッチングは、プログラミングにおいてデータの形(構造)や値を「パターン」と照らし合わせ、一致したパターンに対応する処理を実行する仕組みです。単純な条件分岐(if文)よりも表現力が高く、複雑なデータ構造を簡潔に分解・処理できます。
関数型プログラミング言語(Haskell、ML、Erlangなど)で古くから用いられてきた概念ですが、近年はRust、Swift、Kotlin、Python(3.10以降)、C#など多くのモダン言語にも導入されています。パターンの種類には次のようなものがあります。
- リテラルパターン: 特定の値(数値・文字列など)との一致
- 構造体・タプルパターン: 複合型を分解して各フィールドに束縛
- バリアントパターン: 列挙型の各バリアントに対応
- ガード条件: パターン一致に追加の条件を付ける
- ワイルドカード: どんな値にも一致する「_」など
Rustのmatch式やHaskellのcase式はパターンマッチングの典型で、コンパイラが全てのパターンを網羅しているかを検査する「網羅性チェック」も行います。これにより処理漏れのバグを防ぎます。
なお「パターンマッチング」は正規表現による文字列照合を指すこともあります(文脈によって使い分けが必要です)。プログラミング言語理論における本来の意味は上記の構造照合です。
使い方・例文
RustやSwiftでは、ネットワーク応答の結果をSuccess/Errorの二つのパターンに分けてmatch文で処理し、それぞれの場合に応じた動作を簡潔に記述できます。
この用語をシェア
最終更新: