改变结构

更改结构本身值的结构方法必须以 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