🕌

【bugs.ruby Advent Calender】パターンマッチでキャプチャした値を後から参照できるようにする提案【8日目】

2024/12/08に公開

bugs.ruby Advent Calender 8日目の記事です。

これはなに

今年1年間通してみてきた bugs.ruby のチケットの中から気になったものを1つずつ取り上げていく Advent Calender です。
取り上げるチケットは基本的にこのブログで取り上げたものになります。
記事のまとめは ここを参照 してください。

[Feature #20349] Pattern Matching - Expose local variable captures

Regexp.last_match のようにパターンマッチでキャプチャした値をあとから参照できるようにする提案です。
雰囲気、最後に実行したパターンマッチの情報を以下のように取得できるようなイメージです。

{ name: "homu", age: 14 } in { name:, age: }

# 結果やキャプチャした値などがあとから参照できる
PatternMatch.last_match
# => {:result=>true, :name=>"homu", :age=>14}

内容自体はあると面白そうなものの、この機能があることによってパターンマッチすべての処理にパフォーマンス的な懸念点が発生しちゃうんですよねえ。
実際に Regexp.last_match でもパフォーマンスの懸念点が上げられたりしています。

とはいえ、パターンマッチは好きな機能なのでこういう提案とかがされている事自体は嬉しいですねー。

関連

GitHubで編集を提案

Discussion