swift4.0 关键字 mutating
2018-04-24 本文已影响300人
喜欢那只汪
Mutating 可改变
使用场景:
1.结构体,枚举类型中声明修饰方法 mutating func funcName()
2.extension, protocol 修饰 方法
注:
a. swift 中struct,enum 均可以包含类方法和实例方法,swift官方是不建议在struct,enum 的普通方法里修改属性变量,但是在func 前面添加 mutating 关键字之后就可以方法内修改.
b. 对于protocol 方法也是适用的,mutating 可以修饰的代理方法,如果,struct,enum,class 实现协议之后可以在对应的 mutating 代理方法内修改本身的属性变量.(class 不影响,因为属性变量对于类的类方法,实例方法 是透明的,即随时都可以改变)
代码如下: