如何正确覆盖参数数量未知的方法?

时间:2012-04-22 22:40:36

标签: ruby

我在做的是:

class Foo
  alias_method :__bar__,:bar
  def bar(*arg)
    #do something
    __bar__(*arg)
  end
end

这是正确的方法吗?

或者最好弄清楚原始方法有多少必需的,可选的块参数,并写出完全相同数量的参数?

1 个答案:

答案 0 :(得分:2)

使用slurpy arg是正确的方法,但你也应该处理任何块参数:

class Foo
  alias_method :__bar__,:bar
  def bar(*arg, &block)
    #do something
    __bar__(*arg, &block)
  end
end