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