我有下面的代碼創建一個數組反對哈希:Ruby的哈希使用密鑰值
tp = TupleProfile.new(98, 99)
keyDict = Hash[Array[98,99] => tp]
keyDict[[98,99]].addLatency(0.45)
puts keyDict[[98,99]].getAvg()
這工作,但我希望能夠調用addLatency不檢查現有哈希值:
keyDict[[100,98]].addLatency(0.45) #throws error right now
所以我想創建一個變化的基礎上的鍵的默認值,是這樣的:
keyDict = Hash.new(TupleProfile.new(theKey[0], theKey[1]))
其中theKey是某種特殊指令。有沒有合理的乾淨的方法來做到這一點,或者我最好每次檢查或爲散列做一個包裝類?
我得到的default_proc線這個錯誤:'未定義的方法\'default_proc =」爲{}:散列(NoMethodError)'' – jtpereyda
default_proc ='的溶液中加入在Ruby 1.9中。你在1.8嗎? –