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
はこれが正しいと適正であるか異なっているが私が使うべき方法。
ありがとうございました。今私はちょうどいくつかのコードを移植しているので、私は可能な限り直接変換を行い、おそらく後でリファクタリングします。 –