2
は、私は逆の順序で反復処理しようとしていますが、whileループでは、無期限と印刷4走る...なぜ、ループはここで無期限に実行されていますか?
func countDown(start: Int) -> AnyIterator<Int> {
var i = start
return AnyIterator {
guard i > 0 else { return nil }
i -= 1
return i
}
}
let i = 5
while let x = countDown(start: i).next() {
print("Element x: \(x)") // It iterates indefinitely.
}
おそらく、あなたは 'while'条件でイテレータをいつも再起動しているでしょう – vadian