2015-10-01 46 views
5

正如標題所述,我想知道檢查迭代器是否完整的正確方法。什麼是檢查迭代器是否完整的正確方法?

我找不到在什麼文檔,但我發現在source是這樣的:

iter.next.is_a? Iterator::Stop 

玩具例子:

a = "a世c" 
b = a.each_char 

puts b.next # a 
puts b.next # 世 
puts b.next # c 
puts b.next # #<Iterator::Stop:0x8ccbff8> 

if b.next.is_a? Iterator::Stop 
    puts "DONE" # successfully prints DONE 
end 

這是正確和適當的還是有不同我應該使用的方式。

回答

3

是的,這是正確的方法。但大多數時候你不需要處理next,你只需鏈接迭代器並從中得到結果。

+1

謝謝。現在我只是移植一些代碼,所以我儘可能地進行了直接轉換,稍後可能會重構。 –

相關問題