首页 > 代码库 > Swift 学习笔记十五:扩展

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)")
    }
}

重点:
     ① 扩展使用关键字extension 
     ② 扩展中添加属性只能是计算类型属性,不能是存储类型
     ③ 扩展中添加构造器只能是便利构造器,不能是指定构造器和析构函数