概要
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
}
}