swift4.0 关键字 mutating

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 不影响,因为属性变量对于类的类方法,实例方法 是透明的,即随时都可以改变) 

代码如下:  

你可能感兴趣的:(swift4.0 关键字 mutating)