下面的代码在类中设置一个类变量 C 从类方法,并显示可以从实例方法访问它:
C
class C def self.set_a @@a = 1 end def get_a @@a end end C.set_a C.new.get_a #=> 1
如果我换了 @@a 类内方法 set_a 具有 @a ,以便它创建类实例变量而不是类变量,我是否仍然可以从实例方法中访问它 get_a ?
@@a
set_a
@a
get_a
我认为你不能直接引用它。类是对象,实例变量是对象的私有/内部变量。您可以使用 instance_variable_get 或者用getter方法包装它。
instance_variable_get
在Rails中可以使用 class_variable macro 这有助于设置和访问类级变量。
class_variable