可能是重复问题:
为什么Ruby中的setter需要在类中添加“self.”限定符?
有人能解释一下以下内容之间的区别,以及为什么它不像我们期望的那样:
# version #1
class User
def initialize(name, age)
@name = name
@age = age
end
end
#version #2
class User
attr_accessor :name, :age
def initialize(name, age)
@name = name
@age = age
end
end
#version #3
class User
attr_accessor :name, :age
def initialize(name, age)
self.name = name
self.age = age
end
end
据我所知,在方法中,当你进行赋值时,必须使用
self
关键字。那么为什么在 initialize
方法中不能使用它呢?或者说可以吗?我尝试使用它,但似乎并没有按预期工作,我只是对何时以及更重要的是为什么要使用哪种技术感到困惑。
我真的希望有人能够彻底澄清这个问题 :)