😺

[Bug #20041] デフォルト引数で分割引数の仮引数を参照した場合の挙動に関するチケット

2024/04/21に公開

[Bug #20041] Array destructuring and default values in parameters

  • メソッドのデフォルト引数では以下のように前にある引数を参照して割り当てる事ができる
# b のデフォルト値として a が割り当てられる
def foo(a, b = a)
  b
end

pp foo([1, 2])
# => [1, 2]
  • しかし、以下のような引数の場合に (x, y) に割り当てられる前に b = x が評価されてしまい b = nil になる
# b のデフォルト値として a が割り当てられる
def foo((x, y), b = x)
  [x, y, b]
end

pp foo([1, 2])
# => [1, 2, nil]
GitHubで編集を提案

Discussion