Inout 参数

如果使用 inout 关键字标记,函数可以修改传递给它们的参数。将 inout 参数传递给函数时,调用者必须向传递的变量添加 &

func updateFruit(fruit: inout Int) {
    fruit -= 1
}

var apples = 30 // Prints "There's 30 apples"
print("There's \(apples) apples")

updateFruit(fruit: &apples)

print("There's now \(apples) apples") // Prints "There's 29 apples".

这允许将引用语义应用于通常具有值语义的类型。