let a = [0, 1, 2] var i1: IndexingIterator<[Int]> = a.makeIterator() print(i1.next()) // 0 var i2: IndexingIterator<[Int]> = i1.makeIterator() print(i2.next()) // 1 print(i1.next()) // 1
分岐はしているみたいIndexingIterator
のmakeIterator
で途中状態を考慮したIterator
が帰ってくるというのは別に悪くないようにも思えますねぇ