在Ruby中,類變量是在類定義中聲明的變量,它們屬于類本身而不是類的實(shí)例。類變量的命名通常以@@
為前綴。這里是如何定義和使用類變量的示例:
class MyClass
# 定義類變量
@@class_variable = "I am a class variable"
def initialize
# 在實(shí)例方法中訪問(wèn)類變量
puts @@class_variable
end
end
# 創(chuàng)建類的實(shí)例
instance1 = MyClass.new
instance2 = MyClass.new
# 通過(guò)實(shí)例訪問(wèn)類變量
puts instance1.instance_variable_get(:@class_variable) # 輸出 "I am a class variable"
puts instance2.instance_variable_get(:@class_variable) # 輸出 "I am a class variable"
需要注意的是,類變量在所有類的實(shí)例之間共享。在上面的示例中,當(dāng)我們?cè)L問(wèn)instance1
和instance2
的類變量時(shí),它們都返回相同的值。
如果你想要定義一個(gè)實(shí)例變量,可以使用@
前綴,如下所示:
class MyClass
def initialize
# 定義實(shí)例變量
@instance_variable = "I am an instance variable"
end
end
instance = MyClass.new
puts instance.instance_variable_get(:@instance_variable) # 輸出 "I am an instance variable"
實(shí)例變量?jī)H在類的實(shí)例之間共享,每個(gè)實(shí)例都有自己的實(shí)例變量副本。