2017-07-03 81 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

謝謝,這真的很有幫助 –