我正在学习Swift。在玩Generators的过程中,我遇到了以下问题:给定生成器iter
。如何返回一个项目?
例如:
var str = "Hello World"
var iter = str.characters.generate()
iter.next() // => H
...
iter.next() // => l
iter.next() // => o
// how can I get this functionality to go back?
iter.previous() => l
iter.next() => o
如果不使用生成器:如何使这种行为前进和后退(在字符串中)?
提前致谢!
答案 0 :(得分:2)
使用索引:
var str = "Hello World"
let i0 = str.startIndex
let i1 = i0.successor()
let i00 = i1.predecessor()
str[i0] // H
str[i1] // e
str[i00] // H