我玩到散列不存在關鍵h1.but了驚訝,當我看到一些錯誤,並與他們resolution.I想知道如何遞歸調用做的工作在內部處理的錯誤。哈希鍵查找如何從後端遞歸地工作?
部分-I
這裏當試圖H1 [2] [3]而引起的錯誤。好的在下一部分我已經解決了它。
irb(main):002:0> h1=Hash.new()
=> {}
irb(main):003:0> h1[2]
=> nil
irb(main):004:0> h1[2][3]
NoMethodError: undefined method `[]' for nil:NilClass
from (irb):4
from C:/Ruby193/bin/irb:12:in `<main>'
部分-II
現在怎麼下面的哈希定義處理以前的錯誤。運行什麼內部算法,這是第一部分可能實現的。我知道下面的sysntx解決了它,但我想看到它的內部屏幕如何完成工作。
irb(main):005:0> h1 = Hash.new do |h,k|
irb(main):006:1* h[k] = Hash.new()
irb(main):007:1> end
=> {}
irb(main):008:0> h1[2]
=> {}
irb(main):009:0> h1[2][3]
=> nil
遞歸調用是否可以修復?比如說h1 [1] [2] [3]和h1 [1] [2] [3] [4]等等。
當我通過h1 [2]調用密鑰時 - 這裏我知道2
是我正在尋找的密鑰。現在h1 [1] [2] - 在這種情況下,尋找密鑰的呼叫[1] [ 2] - 我正確嗎?如果我不正確,那麼真實的東西是如何從後端工作的 - 想知道這一點。
誰能幫我在這裏明白了嗎?
感謝,
能否請你解釋你的代碼? –