在下面的片段中,
class MyClass
class << self
@@variable1 = 'foo'
def my_method
@variable2 = 'bar'
end
end
end
是@@variable1
和@variable2
类变量?换句话说,上面的片段是否等同于这个片段:
class MyClass
@@variable1 = 'foo'
def self.my_method
@@variable2 = 'bar'
end
end
已编辑
@suvankar,感谢您的回答。第二个片段是一个错字,我对其进行了编辑以包含“自我”。我实际上并不完全确定在第一个片段中,variable2 是一个类变量。例如,如果我将第一个片段加载到 irb,然后键入:
>> MyClass.class_variables
=> [@@variable1]
>> MyClass.instance_variables
=> [@variable2]
所以看起来 variable1 是一个类变量(这并不奇怪)。但是 variable2 是 MyClass 类的实例变量。