@ - 实例变量 @@ - 类变量。
因此,如果没有创建实例,则不应共享实例变量值。但是:
class Add
def self.add(what)
if not defined? @a
@a = 0
end
@a += what
puts @a.to_s
end
end
Add.add(4)
Add.add(4)
结果:
$ruby main.rb
4
8
为什么?
最佳答案
Ruby 中的每个类也是一个对象,Class
类的实例。所以,您的 @a
只是 Add
类的实例变量。
关于ruby - ruby 中的实例变量就像类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19958650/