Mustatingとは何ですか.



mutatingについてのコメントを読んで整理してみました
ソース:docs.swift

Modifying Value from Within Instance Methods


define mutable

変わりやすいとは「変わりやすい」という意味です
Structures and enumerations are value types. By default, the properties of a value type can't be modified from within its instance methods.
→StructureとEnumerationは値タイプです.デフォルトでは、instanceメソッドで値タイプのプロパティを変更することはできません.
However, if you need to modify the properties of your structure or enumeration within a particular method, you can opt in to mutating behavior for the method. The method can then mutate ( that is, change) its properties from within the method, and any changes that it makes are written back to the original structure when the method ends. The method can also assign a completely new instance to its implicit self property, and this new instance will replace the existing one when the method ends.
→ただし、特定のメソッド内で構造または計算のプロパティを変更する必要がある場合は、そのメソッドの動作を変更できます.その後、メソッドはメソッドでプロパティを変更(変更)できます.メソッドが終了すると、すべての変更が元の構造に再書き込まれます.メソッドは、メソッドの終了時に既存のインスタンスを置き換える暗黙的な自己属性に完全に新しいインスタンスを割り当てることもできます.
... これは何の話ですか.だからグラウンドを開けた

デフォルトでは、instanceメソッドで値タイプのプロパティを変更することはできません.
そうですね.varであっても、インスタンスメソッドでは修正できません.
エラー文の詳細表示

Left side of mutating operator isn't mutable. += オペレータの左の部分は変わらないそうです.
fixで変更しました

Usage

顧客向けマルチステーションメソッド


Mutating methods for enumerations can set the implicit self parameter to be a different case from the same enumeration.
enum TrsStateSwitch {
    case off, low, high
    mutating func next() {
	switch self {
	case .off:
	    self = .low
	case .low:
	    self = .high
	case .high:
	    self = .off
	}
    }
}
var ovenLight = TriStateSwitch.low
ovenLight.next()
// ovenLight is now equal to .high
ovenLight.next()
// ovenLight is now equal to .off

整理する


メソッドの前のmutating.valuetype instance(e.g Structure,Enumeration)メソッドを使用してインスタンス属性値を変更します.