本文主要介绍Extension的作用以及使用方式 Extension的作用
- 添加计算型实例属性和计算型类属性
extension Double{
//添加计算型实例属性
var km:Double{
return self * 1000
}
//计算型类属性
static var danwei:String {
return "米"
}
}
let x = 1.2.km
print(x)
print(Double.danwei)
扩展可以添加新的计算属性,但是它们不能添加存储属性,或向现有的属性添加属性观察者。
- 定义实例方法和类方法
- 提供新的构造器
扩展可以给一个类添加新的便利构造器,但是他们不能给类添加新的指定构造器或者析构器, 指定构造器和析构器必须由类的原始实现提供 如果你通过扩展提供一个新的构造器,你有责任确保每个通过该构造器创建的实例都是初始化完整的。
- 定义下标
- 定义和使用新的嵌套类型
- 使已经存在的类型遵循一个协议