1. 扩展的用途
Swift 中的扩展功能可以动态地给类增加功能
现有的类, 结构或枚举类型的方法, 可以在扩展的帮助下进行添加
类型的功能可以使用扩展加入, 但重写的功能不能使用扩展
扩展可以完成以下的任务 :
-
- 添加计算型属性和计算静态属性
- 定义实例方法和类型方法
- 提供新的构造器
- 定义下标
- 定义和使用新的嵌套类型
- 使一个已有的类型符合某个接口
2. 扩展类型的属性
extension Int {
var double : Int {
return self * 2
}
var triple : Int {
return self * 3
}
var fourfold : Int {
return self * 4
}
var half : Double {
return Double(self) / 2.0
}
}
var x = 10
print(x.half) //结果 : 5
print(x.double) //结果 : 20
3. 拓展类型的方法
struct sXYPoint {
var x = 0.0
var y = 0.0
}
extension sXYPoint {
func distance(point : sXYPoint) -> Double {
let disX = point.x - self.x
let disY = point.y - self.y
return sqrt(disX * disX + disY * disY)
}
}
let startPoint = sXYPoint(x : 0, y : 0)
let endPoint = sXYPoint(x : 1, y : 1)
print(startPoint.distance(point : endPoint)) //结果 : 1.4142135623731
自創文章, 原著 : Jonny. 如若閣下需要轉發, 在已經授權的情況下請註明本文出處 :