因爲我們有面向對象的編程,所以我們可以使父類具有所有子類所需的所有功能。那麼擴展的目的是什麼?我在這個問題上有點困惑,請任何人幫助我。我們如何使用Extension?
-3
A
回答
2
擴展
添加功能,以您的類沒有子,是在你沒有必要你想擴展類的實現,它是一個框架或庫
內的情況下,例如類非常有用擴展添加新的功能,以現有的類,結構, 枚舉,或協議類型。這包括能夠擴展您無法訪問原始源代碼 (稱爲追溯建模)的 類型。擴展名與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
謝謝,這真的很有幫助 –
相關問題
- 1. 我應該使用Share Extension of Action Extension嗎?
- 2. 如何讓我的應用程序使用AndEngine Phyiscs Box2D Extension?
- 3. 我們如何使用BigInt?
- 4. 我們如何使用JavaScript
- 5. 我們如何使用php
- 6. 我們如何使用C#
- 7. 我們如何使用prepareStatement()?
- 8. 我們如何使用Zend_Gdata
- 9. 我們如何使用PHP
- 10. 我們如何使用硒
- 11. 我們如何使用cuPrintf()?
- 12. 我可以我們如何使用python
- 13. 我們如何使用breez調用webservice
- 14. 我們如何確保我們被允許使用REQUEST_IGNORE_BATTERY_OPTIMIZATIONS權限
- 15. 我們應該如何改進我們對SVN的使用?
- 16. 我們如何解除我們不再使用它的觀點?
- 17. MagicalRecord(CoreData)+ Today Extension(iOS8)...他們會玩嗎?
- 18. Arquillian Suite Extension - 我們是否應該在Suite
- 19. 我們可以在Today- Widget-Extension中共享App類
- 20. 如何監視我們使用
- 21. 我們如何使用visualsearch.js的輸出?
- 22. 我們如何使用pageindiactor在樞軸
- 23. 我們如何在C#上使用FileMode.Append?
- 24. 我們如何通過使用castor
- 25. 我們如何使用硒的webdriver
- 26. 我們如何使用AWS/S3?
- 27. 我們如何在SHCreateDirectoryEx()中使用SECURITY_ATTRIBUTES?
- 28. 我們如何使用EFPocoAdapter獲得DynamicData?
- 29. 我們如何使用Context類?
- 30. 我們如何使用PHP/Drupal的
你會如何「使具有這些都需要所有子類的所有功能,父類」有,說'String'或'UIView'? – Hamish
我認爲參考將有所幫助:https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Extensions.html – Jay
重複,無題,低質量,找書等。 –