[Feature #20953] Array#fetch_values と Array#values_at を同じ挙動にするチケット

2024/11/25に公開

[Feature #20953] Array#fetch_values vs #values_at protocols

  • Array#fetch_valuesArray#values_at は同じような挙動を期待するが差異があるというチケット
pp [1, 2, 3, 4, 5].values_at(0, 3..4)    #=> [1, 4, 5]
pp [1, 2, 3, 4, 5].fetch_values(0, 3..4) # TypeError: in 'Array#fetch': no implicit conversion of Range into Integer
  • Array#fetch_values は Ruby 3.4 で追加される配列の複数の位置から複数の要素を取得するメソッドですね
  • Array#values_atRange を受け取るけど Array#fetch_values はそうではない感じみたいですねー
# 引数の数に関係なくエラーになる
# error: no implicit conversion of Range into Integer (TypeError)
pp [1, 2, 3, 4, 5].fetch_values(3..4)
  • このあたりの挙動を揃えたいっていうチケットになります
  • どうするのかは matz 次第みたですかね?
GitHubで編集を提案

Discussion