メソッド定義の仮引数に*
を付けておくと引数の残りすべてを受け取ってくれる。これに関してこんな書き方ができるのを最近知った。
def foo(*)
end
foo(1, 2, 3)
引数が消えてしまうわけではないらしい。
class Foo
def foo(*args)
args
end
end
class Bar < Foo
def foo(*)
super
end
end
Bar.new.foo(1, 2, 3) #=> [1, 2, 3]
キーワード引数には**
が同様に使える(?)。