检查迭代器是否完整的正确方法是什么?

时间:2015-10-01 22:40:53

标签: crystal-lang

正如标题所述,我想知道检查迭代器是否完整的正确方法。

我在文档中找不到任何内容,但我在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

这是正确和正确的还是我应该采用不同的方式。

1 个答案:

答案 0 :(得分:3)

是的,这是正确的方法。但是大多数时候你不需要处理next,你只需链接迭代器并从中获得结果。