-2

複数の引数を取るメソッドをオーバーライドする子クラスを持つ基本クラスがあります。

class Parent
  def foo *bar
  end
end

class Child < Parent
  def foo bar, baz
  end
end

これはうまくいきます。ただし、親に foo を呼び出すメソッド foobar があるとします。

def foobar *foo_args
  foo foo_args
end

foo_args は 1 つの配列であるのに対し、Child.new.foo は 2 つのオブジェクトを想定しているため、これを Child インスタンスで呼び出すと ArgumentError が発生します。これを回避する方法はありますか?

4

1 に答える 1

1

あなたの質問は明確ではありませんが、これがあなたが望むものかもしれないと思います:

def foobar *foo_args
  foo(*foo_args)
end

それでも、Child.new.fooエラーが発生しないようにするには、正確に 2 つの引数を取る必要があります。

于 2015-01-14T19:51:40.630 に答える