可能重复:
类变量和类实例变量之间的区别?
我想了解这里的区别:
class Blog
class << self
def tags (default_tags)
@tags ||= default_tags
end
end
end
现在,Blog.tags 总是返回最初分配的内容。由于我正在使用 Rails,因此每个请求都是如此。
上面的@tags 是类级别的实例变量,似乎与@@tags 类似,后者是类变量。它们实际上是一样的吗?两者之间是否有任何区别,并决定选择哪一个而不是另一个?
还是我的理解完全错误?
ps:这显然是一个虚构的例子