【发布时间】:2016-10-14 03:37:41
【问题描述】:
我在看这段代码:
class Mo
def new(indy, rome = 1)
initialize(indy, rome)
end
def initialize(indy, rome)
...
end
end
Mo.new(2)
我得到这个输出:
test.rb:6:in `initialize': wrong number of arguments (1 for 2) (ArgumentError)
如果我将定义中rome 的默认值添加到new,它会起作用:
class Mo
def new(indy, rome = 1)
initialize(indy, rome)
end
def initialize(indy, rome = 1)
...
end
end
Mo.new(2)
为什么?
【问题讨论】:
-
你确定你“将定义中 rome 的默认值添加到 new”吗?在我看来,您已将其添加到
initialize。 -
这和new-operator有什么关系?
标签: ruby new-operator initializer