在Ruby中,类变量(Class Variables)是属于类的变量,而不是属于类的实例(对象)。它们以两个下划线(__)开头和结尾,例如:@@variable_name。类变量在整个类及其所有实例之间共享,这意味着对类变量的任何更改将影响所有实例。
类变量通常用于存储所有实例共享的数据,例如类的版本号、描述或其他全局设置。与实例变量不同,实例变量(以@开头)仅在特定实例中存储数据,不会影响其他实例。
以下是一个关于Ruby类变量的示例:
class MyClass @@variable_name = "Shared Data" def self.display_variable puts @@variable_name end def initialize @instance_variable = "Instance Data" end end # 访问类变量 MyClass.display_variable # 输出 "Shared Data" # 创建类的实例 instance1 = MyClass.new instance2 = MyClass.new # 通过实例访问类变量 instance1.display_variable # 输出 "Shared Data" instance2.display_variable # 输出 "Shared Data" # 更改类变量 MyClass.@@variable_name = "Updated Shared Data" # 再次访问类变量 instance1.display_variable # 输出 "Updated Shared Data" instance2.display_variable # 输出 "Updated Shared Data"
在这个示例中,我们定义了一个名为MyClass的类,其中包含一个类变量@@variable_name和一个实例变量@instance_variable。我们可以通过类名直接访问类变量,也可以通过类的实例访问类变量。当我们更改类变量时,所有实例中的类变量值都会更新。