class_variable and class_instance_variable in Ruby

类变量与类实例变量

class A
  # 类实例变量
  @var = 1
  # 类变量
  @@var = 2
end

# A.class_variables
# => [:@@var]

# A.instance_variables
# => [:@var]

类变量(@@var)在所有子类中共享,类似于全局变量,可以当做全局变量来使用。

类实例变量(@var),可以被继承,但是在子类中的值,各自互不影响,如果在子类没有被赋值,引用的是父类的值。