[Ruby]パターンマッチのfindパターン

Ruby3.0で導入されたパターンで、Ruby3.2からは実験的機能ではなくなり、警告が出なくなった。

findパターンでは*を2回使って、前と後ろの任意の要素をパターンとして表現できるようになった。

以下は5以上の整数が3つ連続している部分を検索している。

case [1, 4, 5, 8, 9, 3, 10, 11, 15]
in [*, 5.. => a, 5.. => b, 5.. => c, *]
  "a=#{a}, b=#{b}, c=#{c}"
end
# => "a=5, b=8, c=9"

【参考】