上級 › 可変長引数を委譲するメソッドで * を付け忘れると ArgumentError になる › パターン2
可変長引数を委譲するメソッドで * を付け忘れると ArgumentError になる
受け取った可変長引数(*argsで受けた配列)をそのまま別のメソッドに渡すには、呼び出し側でも*を付けて展開する必要があります。
1 def sum3(a, b, c) 2 a + b + c 3 end 4 5 def wrapper(*args) 6 sum3_______ ^ 7 end 8 9 puts wrapper(4, 5, 6)
main.rb:1:in `sum3': wrong number of arguments (given 1, expected 3) (ArgumentError)
from main.rb:6:in `wrapper'
from main.rb:9:in `<main>'
空欄を埋めて実行を通す
受け取った可変長引数を別のメソッドにそのまま横流ししたい場合は、呼び出し側でも*で展開する必要があります。
次の問題