<分区>
如果我有这样的类(class):
class Person
def initialize(options={})
self.name = options[:name]
end
def name=(name)
@name = name
end
end
...然后“name=”方法被调用,我得到了我期望的结果。但是,如果我稍微更改示例以从对“name=”的调用中删除“self”,则永远不会调用该方法:
class Person
def initialize(options={})
name = options[:name]
end
def name=(name)
@name = name
end
end
这是为什么?为什么“ self ”必须在那里?我的印象是隐含的“self”会在“initialize”构造函数中按预期设置,因此会像第一个示例一样运行。