2011-04-13 45 views
1

我想運行下面的代碼使用Nokogiri,但它在第161次迭代時卡住了。列表是一組解析文件後創建的節點。爲什麼我的代碼無限期懸掛?

我還在想知道爲什麼會發生這種情況,難道是因爲內存不足?我還能檢查它是否無限期懸掛。

for i in 0...list.length 
    puts i 
    # puts list[i].inner_html 
    while isReady(list[i]) 
    list[i].inner_html = "#{list[i+1].inner_html}" 
    list[i+1].remove 
    end 
end 

解決的問題我剛剛意識到名單[I + 1]卸下襬臂沒有消除,這就是爲什麼它在while循環無限期地掛起。感謝您的建議。

+3

你需要爲你正在做的事情提供更多的上下文。文件有多大?你想做什麼?什麼是'isReady()',因爲這就是循環,除非list.length很荒謬,否則list.length + isReady運行的時間大於你的耐心。 – 2011-04-14 00:04:41

+0

完全同意Tim Man。除此之外,將你的第一行改爲'list.each_index do | i |'。這更容易理解。 – sawa 2011-04-14 02:30:04

回答

1

當我== list.length和list [i + 1] .remove()被調用時會發生什麼?看起來很麻煩。

相關問題