Mutating 可改變
使用場景:
? ? 1.結(jié)構(gòu)體,枚舉類型中聲明修飾方法 mutating func funcName()
? ? 2.extension, protocol 修飾 方法
? ? 注:
?????????a. swift 中struct,enum 均可以包含類方法和實例方法,swift官方是不建議在struct,enum 的普通方法里修改屬性變量,但是在func 前面添加 mutating 關(guān)鍵字之后就可以方法內(nèi)修改.
?? ??? ?? b. 對于protocol 方法也是適用的,mutating 可以修飾的代理方法,如果,struct,enum,class 實現(xiàn)協(xié)議之后可以在對應(yīng)的 mutating 代理方法內(nèi)修改本身的屬性變量.(class 不影響,因為屬性變量對于類的類方法,實例方法 是透明的,即隨時都可以改變)?
代碼如下: ?