改變結構

更改結構本身值的結構方法必須以 mutating 關鍵字為字首

struct Counter {
    private var value = 0
    
    mutating func next() {
        value += 1
    }
}

什麼時候可以使用變異方法

mutating 方法僅適用於變數內的 struct 值。

var counter = Counter()
counter.next()

當你不能使用變異方法

另一方面,mutating 方法不適用於常量內的 struct 值

let counter = Counter()
counter.next()
//  error: cannot use mutating member on immutable value: 'counter' is a 'let' constant