我能在Swift中创建一个生成器吗?
利用迭代器,我需要存储中间结果,例如:
struct Countdown: IteratorProtocol, Sequence {
private var value = 0
init(start: Int) {
self.value = start
}
mutating func next() -> Int? {
let nextNumber = value - 1
if nextNumber < 0 {
return nil
}
value -= 1
return nextNumber
}
}
for i in Countdown(start: 3) {
print(i)
} // print 1 2 3
在这个例子中,我需要存储
value
。在我的情况下,我想使用生成器而不是迭代器,因为我不想在每个
next
中存储我的序列的中间结果。