Swift Generators:next()的对应部分是什么?

时间:2015-10-20 08:27:55

标签: string swift iterator generator

我正在学习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

如果不使用生成器:如何使这种行为前进和后退(在字符串中)?

提前致谢!

1 个答案:

答案 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