如果我有这样的课程:
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”将在“initialize”构造函数中按预期设置,因此将表现为第一个示例。