我正在努力提高我的 OO Ruby 技能。我创建了一个类,当调用并尝试创建它的 ans 实例时,出现错误。
这是代码。
class EncapsulatedPerson
def initialize(name)
set_name(name)
end
def name
@first_name + " "+ @last_name
end
def set_name
first_name, last_name = name.split(/\s+/)
set_first_name(first_name)
set_last_name(last_name)
end
def set_first_name
@first_name = name
end
def set_last_name
@last_name = name
end
end
当我加载我在上面写的文件并尝试创建此类的实例时
2.2.0 :004 > ep = EncapsulatedPerson.new('William Wallace')
ArgumentError: wrong number of arguments (1 for 0)
... #
正如我从错误中理解的那样,我应该在创建新实例时传递 0 个参数(但我认为def initialize(name) ...
需要一个(名称)参数'
2.2.0 :003 > ep = EncapsulatedPerson.new
ArgumentError: wrong number of arguments (0 for 1)
我完全糊涂了。new
尝试实例化方法时需要多少参数?一个论点还是没有论点?