概要
mutating
は構造体のストアドプロパティの値を変更する為に、再代入することを示す明示的なキーワード
です。その為参照型
であるクラス
には使用せず、再代入を必要とする値型
のみに使用します。
使用例
前述した通り、値型
である構造体
のストアドプロパティ
に変更を加えるとエラーになります。参照型
であるクラス
の場合はエラーにはなりません。
struct numberStruct {
var number: Int
init(number: Int){
self.number = number
}
func plus() {
self.number += 1 // コンパイルエラー
}
}
class numberClass {
var number: Int
init(number: Int) {
self.number = number
}
func plus() {
self.number += 1 // クラスの場合エラーにならない
}
}
mutating
を使用することで値を変更することができます。
struct numberStruct {
var number: Int
init(number: Int){
self.number = number
}
mutating func plus() {
self.number += 1
}
}