【发布时间】:2012-08-27 18:17:33
【问题描述】:
可能重复:
Why do Ruby setters need “self.” qualification within the class?
有人可以解释以下之间的区别,以及为什么它不像人们所期望的那样:
# 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 方法中使用它?或者你可以吗?我尝试使用它,但它似乎没有按预期工作,我只是对使用哪种技术以及何时使用以及更重要的是为什么感到困惑。
我真的希望有人能一劳永逸地为我解决这个问题:)
【问题讨论】:
-
您能否更具体地说明哪个失败以及您期望的输出是什么?
-
这和类实例变量有什么关系?
标签: ruby