如何紅寶石呼叫varz
方法通過使用varz[:foo]
?通過變量和紅寶石的方法困惑
class Component
class << self
def varz
@varz ||= Hash.new
end
end
end
Component.varz[:foo] = 'bar'
puts Component.varz # {:foo=>"bar"}
如何紅寶石呼叫varz
方法通過使用varz[:foo]
?通過變量和紅寶石的方法困惑
class Component
class << self
def varz
@varz ||= Hash.new
end
end
end
Component.varz[:foo] = 'bar'
puts Component.varz # {:foo=>"bar"}
class < < self用於定義將在類上調用的類方法。
其中作爲@varz表示實例變量。你可能會想,那麼爲什麼這個實例對象在類方法中做了什麼?這是因爲類本身是類的實例。
還有一兩件事要注意,在紅寶石方法返回它的最後一句話。所以在你的情況下,Component.varz返回哈希類型的實例變量@varz。
Component.varz[:foo] = 'bar'
這增加了key-value對foo和'bar'來散列。
最後,
p Component.varz
要打印由varz方法returened值。
你在哪裏得到你的知識呢?我建議一本好書。它會清除許多混淆 –