我们为什么要使用扩展程序?

我刚刚了解了扩展,我想知道有一个有关扩展协议的示例。例如,假设我们具有以下协议:

protocol CanFly {
    func canFly()
}

允许所有可以飞行的班级基本上都可以飞行。现在假设我们使用扩展来扩展协议,然后执行:

extension CanFly {
    func canEat() {
        print("I can eat")
    }
}

如果我们可以仅将func canEat添加到协议中,这是什么目的?这些协议更多的是抽象结构,为什么我们要在其中添加带有主体的func?

  • 只想说一声让我为这件事感到抱歉,只是想弄清楚关于扩展
tuzimao1 回答:我们为什么要使用扩展程序?

每个Protocol Extensions上的Swift文档:

可以扩展协议以提供方法,初始化程序,下标, 以及将属性实现计算为符合标准的类型。这允许 您可以定义协议本身的行为,而不是每个协议 类型的个人符合性或全局功能。

这意味着您可以在协议扩展功能内运行逻辑 ,因此您不必在符合协议的每个类中都这样做。

就个人而言,我还发现扩展对于扩展内置类(如String或UIViewController)的功能很有用,因为可以从应用程序中的任何位置调用扩展。我有一些开源扩展snippets,如果您愿意,可以看看。

,

扩展协议只是扩展的可能用例之一,确实强大且有用,但一开始可能会造成混淆。

我建议您仔细查看this article,因为它会更深入地介绍更平凡的使用方式。

本文链接:https://www.f2er.com/2403562.html

大家都在问