Ruby类变量如何定义使用
在Ruby中,类变量是在类定义中声明的变量,它们属于类本身而不是类的实例。类变量的命名通常以@@
为前缀。这里是如何定义和使用类变量的示例:
class MyClass# 定义类变量@@class_variable = "I am a class variable"def initialize# 在实例方法中访问类变量puts @@class_variableendend# 创建类的实例instance1 = MyClass.newinstance2 = MyClass.new# 通过实例访问类变量puts instance1.instance_variable_get(:@class_variable) # 输出 "I am a class variable"puts instance2.instance_variable_get(:@class_variable) # 输出 "I am a class variable"
需要注意的是,类变量在所有类的实例之间共享。在上面的示例中,当我们访问instance1
和instance2
的类变量时,它们都返回相同的值。
如果你想要定义一个实例变量,可以使用@
前缀,如下所示:
class MyClassdef initialize# 定义实例变量@instance_variable = "I am an instance variable"endendinstance = MyClass.newputs instance.instance_variable_get(:@instance_variable) # 输出 "I am an instance variable"
实例变量仅在类的实例之间共享,每个实例都有自己的实例变量副本。