我有一个问题是在Ruby中引用类变量的最佳方法是什么。
这是我上过的课程:
class Person
attr_accessor :name
def initialize(name)
@name = name
end
def say_name
puts @name
end
def say_name2
puts self.name
end
end
bob = Person.new("Bob")
bob.say_name
=> "Bob"
bob.say_name2
=> "Bob"
" say_name"方法似乎按预期工作。为什么要使用@variable vs self.variable ??
答案 0 :(得分:1)
attr_accessor :name
只创建方法name
,返回@name
变量,类似
def name
@name
end
而不是你。
如果没有attr_accessor
,则self.name
和name
将无法正常工作并返回NoMethodError
。
@name
适用于所有情况。