如何在不创建额外变量的情况下处理此错误?
func reduceToZero(x:Int) -> Int {
while (x != 0) {
x = x-1 // ERROR: cannot assign to 'let' value 'x'
}
return x
}
我不想仅仅为了存储x的值而创建额外的变量.有可能实现我想要的吗?
如何在不创建额外变量的情况下处理此错误?
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
条声明指南可以在here页上找到.