Swift突变结构

示例

更改结构本身值的结构方法必须以mutating关键字为前缀

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

什么时候可以使用变异方法

这些mutating方法仅适用于变量内部的结构值。

var counter = Counter()
counter.next()

当您不能使用变异方法时

另一方面,mutating方法不适用于常量内的结构值

let counter = Counter()
counter.next()
//  错误:无法在不可变值上使用变异成员:“计数器”为“ let”常量