由于我们有面向对象的编程,所以我们可以创建具有所有子类所需的所有函数的父类。那么扩展的目的是什么?我在这个问题上有点困惑,请任何人帮助我。
答案 0 :(得分:2)
扩展
在没有子类化的情况下向您的类添加函数,在您没有尝试扩展的类的实现,在Framework或库中的示例类的情况下非常有用
中定义扩展程序为现有的类,结构添加新功能, 枚举或协议类型。这包括扩展的能力 您无权访问原始源代码的类型 (称为追溯建模)。扩展类似于类别 在Objective-C中。 (与Objective-C类别不同,Swift扩展可以 没有名字。)
Swift中的扩展程序可以:
添加计算实例属性和计算类型属性定义 实例方法和类型方法提供新的初始化器定义 下标定义和使用新的嵌套类型创建现有类型 符合协议在Swift中,您甚至可以将协议扩展到 提供其要求的实现或添加额外的 符合类型的功能可以利用。更多 有关详细信息,请参阅协议扩展。
请注意
扩展程序可以为类型添加新功能,但它们不能 覆盖现有功能。
扩展语法
使用扩展名关键字声明扩展程序:
extension SomeType { // new functionality to add to SomeType goes here }
扩展可以扩展现有类型,使其采用一个或多个协议。至 添加协议一致性,您以相同的方式编写协议名称 你为一个类或结构写它们:
extension SomeType: SomeProtocol, AnotherProtocol { // implementation of protocol requirements goes here }
添加中描述了以这种方式添加协议一致性 协议与扩展的一致性。
扩展可用于扩展现有的泛型类型,如 在扩展通用类型中描述。您还可以扩展通用 键入以有条件地添加功能,如扩展中所述 与通用Where子句。
希望这有助于澄清你