扩展

作者: 豌豆_b314 | 来源:发表于2020-04-17 16:03 被阅读0次

    为现有的类、结构体、枚举类型、协议添加了新功能。扩展可以:
    1、添加计算属性(get set);
    2、定义方法;
    3、提供新的构造函数;
    4、使现有的类型遵循某协议(这种常用)

    Swift中使用extension关键字实现扩展

     extension 现有类型{
       //添加新功能
     }
    

    【演示一】 向已有的类型添加计算属性

    extension Double{
        var km:Double{return self*1000.0}//新增一个只读属性
        var m:Double{return self}
        var cm:Double{return self/100.0}
        var mm:Double{return self/1000.0}
    }
    
    18.0.km
    

    【案例二 】 给已有的类型添加新的方法

    extension Int{
        func square() {
           print(self * self)
        }
    }
    3.square()
    

    【案例三】 向已有的类型添加新的构造方法

    extension CGRect{
        init(center:CGPoint,size:CGSize) {
            let originx = center.x - size.width/2
            let originy = center.y - size.height/2
            self.init(x: originx, y: originy, width: size.width, height: size.height)
        }
    }
    

    【案例四】让现有类型遵循某种协议

    protocol protocol1{
        func play()
    }
    extension Double:protocol1{
        func play() {
            print("给Float类型添加新协议")
        }
    }
    3.4.play()
    

    相关文章

      网友评论

          本文标题:扩展

          本文链接:https://www.haomeiwen.com/subject/yrxevhtx.html