我有以下类,它具有getNextToken迭代数组项的方法:
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中将弃用++
我应该如何重写我的代码以让方法在当前位置返回数组项并在此之后递增位置?
添加多行的标准建议position +=1不适合此处,因为我在评估时正完全退出示波器tokens[position++]
position +=1
tokens[position++]
defer在计算返回值 之后 ,可用于递增position变量 : __
defer
position
func getNextToken() -> Token? { guard position < tokens.count else { return nil } defer { position += 1 } return tokens[position] }