为什么我们使用Extension?

时间:2017-07-03 12:34:00

标签: swift swift-extensions

由于我们有面向对象的编程,所以我们可以创建具有所有子类所需的所有函数的父类。那么扩展的目的是什么?我在这个问题上有点困惑,请任何人帮助我。

1 个答案:

答案 0 :(得分:2)

扩展

在没有子类化的情况下向您的类添加函数,在您没有尝试扩展的类的实现,在Framework或库中的示例类的情况下非常有用

https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Extensions.html

中定义
  

扩展程序为现有的类,结构添加新功能,   枚举或协议类型。这包括扩展的能力   您无权访问原始源代码的类型   (称为追溯建模)。扩展类似于类别   在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子句。

希望这有助于澄清你