Swift 中面向对象代码的扩展与应用
1. 扩展现有类的方法
在编程过程中,有时我们希望为现有的类添加方法。通常情况下,我们可以直接在类的 Swift 源文件中添加新方法。但当无法访问类的源代码,或者修改代码不方便时,就可以使用 extension
关键字来实现。
1.1 定义 Point2D
和 Point3D
类
首先,我们定义 Point2D
类来表示一个可变的二维点,它包含 x
和 y
两个属性,并遵循 CustomStringConvertible
协议:
public class Point2D: CustomStringConvertible {
public var x: Int
public var y: Int
public var valuesAsDescription: String {
return "x: \(x), y: \(y)"
}
public var description: String {
get {
return "(\(valuesAsDescription))"
}
}
init(x: Int, y: Int) {
self.x = x
self.y = y
}
}