【问题标题】:Swift Generators: What is the counterpart to next()?Swift 生成器:next() 的对应物是什么?
【发布时间】:2015-10-20 08:27:54
【问题描述】:

我目前正在学习 Swift。在玩发电机时,我遇到了以下问题:给定一个发电机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

如果不使用生成器:我怎样才能让这种行为向前和向后(在字符串中)?

提前致谢!

【问题讨论】:

    标签: string swift iterator generator


    【解决方案1】:

    使用索引:

    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
    

    【讨论】:

    • 哇。那很快。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 2014-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多