使用 mutating 关键字修饰方法是为了能在该方法中修改 struct 或是 enum 的变量
首先,先定义一个protocol
protocol ExampleProtocol {
var simpleDescription: String { get }
mutating func adjust()
}
在上面,定义了一个ExampleProtocol
,接下来我们写一个class来遵守这个协议
class SimpleClass: ExampleProtocol {
var simpleDescription: String = "A very simple class"
var anotherProperty: Int = 110
func adjust() {
simpleDescription += " Now 100% adjusted"
}
}
在 struct
中实现协议ExampleProtocol
struct SimpleStruct: ExampleProtocol {
var simpleDescription: String = "A simple structure"
mutating func adjust() {
simpleDescription += "(adjusted)"
}
}
在enum
中实现协议ExampleProtocol同上