2015-10-20 55 views
1

我目前正在學習Swift。在玩弄發電機時,我遇到了以下問題:給定發電機iter。我如何返回一個項目?Swift Generators:next()的對應部分是什麼?

例如:

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 

如果不使用生成器:如何能我得到這個行爲去向前和向後(在String)?

在此先感謝!

回答

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 
+0

哇。那很快。謝謝! – Livioso