2013-02-06 36 views
1

我正在Ruby中對數組進行試驗。我無法訪問最大嵌套數組數。例如 實驗如下:Ruby中嵌套數組是否有限制

array = [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] 

那麼,你知道紅寶石陣列的尺寸的限制嗎?

+0

是否有一個原因,你會需要超過3至4? –

+0

我說這只是實驗 – sbagdat

+2

您可以輕鬆編寫一個程序,添加另一層嵌套,直到遇到錯誤。 –

回答

7

該限制是在內存不足時。據推測,在某些時候

# Warning: be prepared for a sad computer! 
depth=0; arr=[]; a=arr 
begin 
    while true do 
    b = [] 
    a.push(b) 
    a = b 
    depth += 1 
    end 
rescue => e 
    puts "OK: depth=#{depth}, error=#{e} (#{e.class})" 
end 

會提出一些錯誤(例如內存不足),你會看到你有多少個陣列能夠:

+0

我認爲是這樣,但許多語言限制了一些結構,例如if-else塊。 – sbagdat

+2

@sbagdat:但這種事情不適用。嵌套數組只是一個恰好包含一個恰好包含數組的數組......頂層不知道底層正在發生什麼。 –

+0

限制是當你獲得一個計算器。 – texasbruce

1

每評議@ HunterMcMillen的想法,你可以像這樣進行測試築巢。