在Ruby中,類變量是在類定義中聲明的變量,它們屬于類本身而不是類的實例。類變量的命名通常以@@
為前綴。這里是如何定義和使用類變量的示例:
class MyClass
# 定義類變量
@@class_variable = "I am a class variable"
def initialize
# 在實例方法中訪問類變量
puts @@class_variable
end
end
# 創建類的實例
instance1 = MyClass.new
instance2 = 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 MyClass
def initialize
# 定義實例變量
@instance_variable = "I am an instance variable"
end
end
instance = MyClass.new
puts instance.instance_variable_get(:@instance_variable) # 輸出 "I am an instance variable"
實例變量僅在類的實例之間共享,每個實例都有自己的實例變量副本。