2017-07-03 83 views
-3

因为我们有面向对象的编程,所以我们可以使父类具有所有子类所需的所有功能。那么扩展的目的是什么?我在这个问题上有点困惑,请任何人帮助我。我们如何使用Extension?

+0

你会如何“使具有这些都需要所有子类的所有功能,父类”有,说'String'或'UIView'? – Hamish

+1

我认为参考将有所帮助:https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Extensions.html – Jay

+2

重复,无题,低质量,找书等。 –

回答

2

扩展

添加功能,以您的类没有子,是在你没有必要你想扩展类的实现,它是一个框架或库

内的情况下,例如类非常有用

如在https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Extensions.html定义

扩展添加新的功能,以现有的类,结构, 枚举,或协议类型。这包括能够扩展您无法访问原始源代码 (称为追溯建模)的 类型。扩展名与Objective-C中的类别 类似。 (与Objective-C的类别,斯威夫特扩充功能 没有名字。)

扩展斯威夫特可以:

添加计算实例属性和计算类型的属性定义 实例方法和类方法提供了新的初始化定义 标定义并使用新的嵌套类型使现有类型 符合协议在Swift中,甚至可以将协议扩展为提供其要求的实现或添加其他符合类型可以利用的其他功能 。有关更多 的详细信息,请参阅协议扩展。

注意

扩展可以添加新的功能,以一个类型,但也不能 覆盖现有的功能。

扩展语法

声明的扩展与延伸关键字:

extension SomeType { 
// new functionality to add to SomeType goes here 
} 

扩展可以扩展现有类型以使其采取一个或多个协议。为了 附加协议一致性,你写的协议名称为 你写出来的一类或结构相同的方式:

extension SomeType: SomeProtocol, AnotherProtocol { 
// implementation of protocol requirements goes here 
} 

添加这种方式协议一致性在添加 协议一致性与扩展描述。

扩展可用于扩展现有泛型,如扩展泛型中所述的 。您还可以扩展一个通用的 类型以有条件地添加功能,如扩展 中的通用Where子句所述。

希望这有助于澄清你

+0

谢谢,这真的很有帮助 –