Swift make method parameter mutable?
'var' parameters are deprecated and will be removed in Swift 3. So assigning to a new parameter seems like the best way now:
func reduceToZero(x:Int) -> Int {
var x = x
while (x != 0) {
x = x-1
}
return x
}
as mentioned here: 'var' parameters are deprecated and will be removed in Swift 3
As stated in other answers, as of Swift 3 placing var before a variable has been deprecated. Though not stated in other answers is the ability to declare an inout
parameter. Think: passing in a pointer.
func reduceToZero(_ x: inout Int) {
while (x != 0) {
x = x-1
}
}
var a = 3
reduceToZero(&a)
print(a) // will print '0'
This can be particularly useful in recursion.
Apple's inout
declaration guidelines can be found here.