微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何替换位置代码使Swift 3兼容?

我有以下类,它有方法getNextToken迭代数组项:
class Parser {
    let tokens: [Token]
    var position = 0

    init(tokens: [Token]) {
        self.tokens = tokens
    }

    func getNextToken() -> Token? {
        guard position < tokens.count else {
            return nil
        }
    return tokens[position++]
    }
}

我有一个来自编译器的警告消息,将在Swift 3中弃用

我应该如何重写我的代码方法在当前位置返回数组项并在此之后增加位置?

添加一个行位置= 1的标准建议不适合这里,因为我在评估令牌时正在退出范围[位置]

延迟可用于增加位置变量
在计算返回值之后:
func getNextToken() -> Token? {
    guard position < tokens.count else {
        return nil
    }
    defer {
        position += 1
    }
    return tokens[position]
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐