[英]What does @@ mean in Ruby?
當我瀏覽Rails源代碼時,它包含以下行:
@@autoloads = {}
Ruby中@@
mean的含義是什么?
它意味着訪問一個類屬性(一個名為該類的屬性),而不是一個實例(屬性是該類中每個實例化對象所存在的屬性)。
在您的示例中, @@autoloads
將持續您的程序長度。
class TestObj
@@prop = 0
def get_prop
@@prop
end
def increment_prop
@@prop += 1
end
end
a = TestObj.new
b = TestObj.new
a.increment_prop
puts b.get_prop # 1
@@標識一個類變量。
@@只是表示一個類變量。
類變量是在類的所有實例之間共享的變量。 這意味着對於從此類實例化的所有對象,只存在一個變量值。
思考類變量的另一種思考方式是在單個類的上下文中作為全局變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.