摘要訊息 : Swift 中的擴展教學.
0. 前言
本文于 2022 年 3 月 18 日进行一次更新和修正. 修正之后本文已经归档, 不再享受更新.
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 point {
var x = 0.0
var y = 0.0
}
extension point {
func distance(p : point) -> Double {
let dis_x = p.x - self.x
let dis_y = p.y - self.y
return sqrt(dis_x * dis_x + dis_y * dis_y)
}
}
let start_point = point(x : 0, y : 0)
let end_point = point(x : 1, y : 1)
print(start_point.distance(p : end_point)) // 结果 : 1.4142135623731
自創文章, 原著 : Jonny. 如若閣下需要轉發, 在已經授權的情況下請註明本文出處 :