我知道使用self.name是有意义的,但是@name在以下代码中是什么意思?
class NewGame < Game
attr_accessor :name
def initialize(name, options={})
super
self.name = name
end
def add_game(name)
@name = name
end
end
这甚至合法吗?我犯了一个错误吗?
@name
是一个实例变量,可以像类实例的私人成员一样访问。
self.name
是对自我对象的方法调用,如果未明确定义,您将获得一个nomethoderror。
我将继续前进,解释您班上的attr_accessor :weight
与:
def weight=(v)
@weight = v
end
def weight
@weight
end