以下是我的猜测。 它之所以能够工作,是由于第二行的原因: def initialize(*) super ... end 所以这个方法接收任意数量的参数并将它们全部传递给super(就像您知道的那样,没有参数的super表示从原始方法中获取所有参数)。在这种情况下,参数名称不是必需的。
def foo(*)
中如何访问这些可变参数呢? - saihgaladef f(*)
、What does a single splat/asterisk in a Ruby argument list mean?和The meaning of*
when using as a param(not like*arg
, just*
)的副本。 - Jörg W Mittag