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".

這允許將引用語義應用於通常具有值語義的型別。