In-out parameters
In-out parameters are function parameters whose values can be modified, with those modifications persisting after the function ends. They enable the sharing of value types as if they were reference types.
Function with an inout
parameter
func haveBirthday(age: inout Int) {
print("Happy birthday!")
age += 1
}
Passing in an inout
parameter with &
var myAge = 50
print("I am \(myAge).")
haveBirthday(age: &myAge)
print("Now I am \(myAge).")
// Output:
// I am 50.
// Happy birthday!
// Now I am 51.