Swift编程:类型、方法与数据结构深度解析
1. 函数与方法
在自定义类型中,除了存储属性的数据,添加操作会让类型变得更有趣。以 Point 类型为例,我们可以添加一些方法来交换点的 x 和 y 坐标。
最初的版本如下:
extension Point {
func flipped() -> Self {
Point(x: self.y, y: self.x)
}
mutating func flip() {
let temp = self
self.x = temp.y
self.y = temp.x
}
}
这里的 flipped() 是一个非变异方法,返回一个新的 Point 实例;而 flip() 是一个变异方法,会直接修改当前实例。不过,这两个方法存在逻辑重复。
优化后的版本:
extension Point {
func flipped() -> Self {
Point(x: y, y: x)
}
mutating func flip() {
self = flipped()
}
}
优化后,不必要的 self 引用被移除,交换逻辑
Swift编程深度解析:类型、方法与数据结构
超级会员免费看
订阅专栏 解锁全文
9

被折叠的 条评论
为什么被折叠?



