引数まとめて引き渡し

アスタリスク(*)を使うと、メソッドにやってきた引数をまとめて他のメソッドに引き渡せます。…って以前も書いたけれど…、いいや♪

def hyuki(*args)
  p args
end

def rubyco(*args)
  hyuki(*args)
end

rubyco(3)
rubyco(3, 1)
rubyco(3, 1, 4)

実行結果です。

[3]
[3, 1]
[3, 1, 4]

aliasと組み合わせるとメソッドの「修正」ができますね。

def hyuki(*args)
  p args
end

alias org_hyuki hyuki

def hyuki(*args)
  print ">>>"
  org_hyuki(*args)
end

hyuki(3)
hyuki(3, 1)
hyuki(3, 1, 4)

実行結果です。

>>>[3]
>>>[3, 1]
>>>[3, 1, 4]