扩展就是向一个已有的类、结构体或枚举类型添加新功能(functionality)。扩展和 Objective-C 中的分类(categories)类似。(不过与Objective-C不同的是,Swift 的扩展没有名字。)
Swift 中的扩展可以:
1.添加计算型属性和计算静态属性
2.定义实例方法和类型方法
3.提供新的构造器
4.定义下标
5.定义和使用新的嵌套类型
重点:
① 扩展使用关键字 extension
② 扩展中添加属性只能是计算类型属性,不能是存储类型
③ 扩展中添加构造器只能是便利构造器,不能是指定构造器和析构函数
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
② 扩展中添加属性只能是计算类型属性,不能是存储类型
③ 扩展中添加构造器只能是便利构造器,不能是指定构造器和析构函数