Swift中mutating关键字

2019-08-26  本文已影响0人  1剑天下

结构体枚举或者协议中,使用mutating修饰的方法,可以在该方法内部修改结构体,枚举,或者协议的属性变量。

func sturctExaplem()
    {
        //1. 定义结构体
        struct Location{
            var x :Double
            var y : Double
            var info : String = ""
            //2. 给结构体扩充方法 (普通)
            func text()  {
                
            }
            
            //3. 改变成员变量 ⚠️ 如果在函数里面修改了成员属性必须加上mutating
            mutating func moveH(distance:Double ) {
                
                self.x += distance
            }
}
对值类型进行扩展时,可以使用mutating修饰方法,使得方法内部可以直接修改当前实例的本身
extension Int
{
    //对值类型进行扩展时,可以使用mutating修饰方法,使得方法内部可以直接修改当前实例的本身
    mutating func change(){
        self = self*self
    }
    
}
上一篇 下一篇

猜你喜欢

热点阅读