类变量与类实例变量
class A
# 类实例变量
@var = 1
# 类变量
@@var = 2
end
# A.class_variables
# => [:@@var]
# A.instance_variables
# => [:@var]
类变量(@@var)在所有子类中共享,类似于全局变量,可以当做全局变量来使用。
类实例变量(@var),可以被继承,但是在子类中的值,各自互不影响,如果在子类没有被赋值,引用的是父类的值。
class A
# 类实例变量
@var = 1
# 类变量
@@var = 2
end
# A.class_variables
# => [:@@var]
# A.instance_variables
# => [:@var]
类变量(@@var)在所有子类中共享,类似于全局变量,可以当做全局变量来使用。
类实例变量(@var),可以被继承,但是在子类中的值,各自互不影响,如果在子类没有被赋值,引用的是父类的值。