[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"
【参考】