在Ruby中,類變量(Class Variables)是屬于類的變量,而不是屬于類的實例(對象)。它們以兩個下劃線(__)開頭和結(jié)尾,例如:@@variable_name。類變量在整個類及其所有實例之間共享,這意味著對類變量的任何更改將影響所有實例。
類變量通常用于存儲所有實例共享的數(shù)據(jù),例如類的版本號、描述或其他全局設(shè)置。與實例變量不同,實例變量(以@開頭)僅在特定實例中存儲數(shù)據(jù),不會影響其他實例。
以下是一個關(guān)于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"
# 創(chuàng)建類的實例
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。我們可以通過類名直接訪問類變量,也可以通過類的實例訪問類變量。當(dāng)我們更改類變量時,所有實例中的類變量值都會更新。