正如标题所述,我想知道检查迭代器是否完整的正确方法。
我在文档中找不到任何内容,但我在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
这是正确和正确的还是我应该采用不同的方式。
答案 0 :(得分:3)
是的,这是正确的方法。但是大多数时候你不需要处理next
,你只需链接迭代器并从中获得结果。