【发布时间】:2020-04-20 05:38:24
【问题描述】:
我刚刚了解了扩展,我想知道,有一个关于扩展协议的示例。例如,假设我们有协议:
protocol CanFly {
func canFly()
}
它允许所有可以飞行的班级基本上都可以飞行。现在假设我们使用扩展来扩展协议,我们这样做:
extension CanFly {
func canEat() {
print("I can eat")
}
}
如果我们可以将func canEat 添加到我们的协议中,这样做的目的是什么?更多的这些协议就像一个抽象结构,那么我们为什么要向它添加一个带有主体的 func 呢?
- 只是想说如果我弄得一团糟,我很抱歉,哈哈,只是想澄清一些关于扩展的事情
【问题讨论】:
-
Swift 命名约定以小写字母开头的函数命名
-
协议是一个契约,如果你希望某些结构符合它,他们将不得不实现契约中存在的方法。如果你扩展一个协议,添加一个方法,你不需要他们实现那个功能,你是在为他们提供一些功能。
-
您可能想要分离一些逻辑,甚至将其存储在另一个文件中。这时候扩展可能会有所帮助。
-
我明白了,谢谢你的回答