Swift 学习笔记十五:扩展

扩展就是向一个已有的类、结构体或枚举类型加入新功能(functionality)。扩展和 Objective-C 中的分类(categories)相似。(只是与Objective-C不同的是,Swift 的扩展没有名字。)
Swift 中的扩展能够:
1.加入计算型属性和计算静态属性
2.定义实例方法和类型方法
3.提供新的构造器
4.定义下标
5.定义和使用新的嵌套类型

6.使一个已有类型符合某个协议


一、扩展属性。构造器,方法

class Human{
    var name:String?
    var score:Double
    init(name:String,score:Double){
        self.name = name
        self.score = score
    }
}
extension Human{
    var scale:Double{   //扩展计数属性类型
        return Double(score)/60
    }
    convenience init(){ //扩展便利构造器
        self.init(name:"小笨狼",score:60)
    }
    func description(){ //扩展方法
        println("name:\(name),score:\(score)")
    }
}

重点:
     ① 扩展使用keywordextension 
     ② 扩展中加入属性仅仅能是计算类型属性,不能是存储类型
     ③ 扩展中加入构造器仅仅能是便利构造器,不能是指定构造器和析构函数
     




posted on 2019-03-29 08:23  xfgnongmin  阅读(109)  评论(0编辑  收藏  举报

导航