【ぱたーんまっちんぐ】
パターンマッチング とは?
💡 データの形を見て、ぴったり合う処理を自動で選ぶ仕分け名人
📌 このページのポイント
パターンマッチングって何なの?if文とは違うの?
if文は「条件が真か偽か」を判定するけど、パターンマッチングは「データの形がこのパターンに合うか」を調べるんだ。たとえば荷物の仕分けで、「四角い箱ならAレーン、筒型ならBレーン、それ以外はCレーン」と形で振り分けるイメージだよ。
形で振り分けるってわかりやすいね!具体的にはどんな感じなの?
たとえばRustだと match 式を使うよ。「この値が1なら〇〇、2か3なら△△、それ以外なら××」と書ける。さらに「リストの先頭が0で、残りが空でない場合」のようにデータの構造まで分解してマッチできるんだ。
データの中身まで見られるんだね!if文で書くのとどう違うの?
コンパイラが守ってくれるんだね!どの言語で使えるの?
全然違うものなんだね!他に便利な使い方はあるの?
「ガード条件」を組み合わせると強力だよ。たとえば「値がSomeで中身が0より大きい場合」のように、パターンの形に加えて条件も指定できる。関数型プログラミングではパターンマッチングが基本中の基本で、再帰処理と組み合わせてリストやツリーをエレガントに処理できるんだ。
まとめ:ざっくりこれだけ覚えればOK!
「パターンマッチング」って出てきたら「データの形に合わせて処理を振り分ける仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Pattern Matching」 = パターン照合
💬 「Pattern(型・パターン)」と「Matching(照合)」。データの形に合うパターンを探すイメージだよ