簡體   English   中英

Ruby中@@ mean的含義是什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM