Swift使方法参数可变吗?

如何在不创建其他变量的情况下处理此错误?

func reduceToZero(x:Int) -> Int {

while (x != 0) {

x = x-1 // ERROR: cannot assign to 'let' value 'x'

}

return x

}

我不想创建其他变量只是为了存储x的值。有可能做我想做的事吗?

回答:

如其他答案所述,从Swift 3开始,将var放在不推荐使用的变量之前。尽管没有在其他答案中说明,但是可以声明inout参数。思考:传递一个指针。

func reduceToZero(_ x: inout Int) {

while (x != 0) {

x = x-1

}

}

var a = 3

reduceToZero(&a)

print(a) // will print '0'

这在递归中特别有用。

苹果的inout声明指南可以在这里找到。

以上是 Swift使方法参数可变吗? 的全部内容, 来源链接: utcz.com/qa/397776.html

回到顶部