擴展 就是為一個已有的類、結(jié)構(gòu)體踢星、枚舉類型或者協(xié)議類型添加新功能统刮。這包括在沒有權(quán)限獲取原始源代碼的情況下擴展類型的能力(即 逆向建模 )。
extension SomeType {
// 為 SomeType 添加的新功能寫到這里
}
1污抬、擴展可以為已有類型添加計算型實例屬性和計算型類型屬性
1.png
2汞贸、擴展可以為已有類型添加新的構(gòu)造器。這可以讓你擴展其它類型,將你自己的定制類型作為其構(gòu)造器參數(shù)著蛙,或者提供該類型的原始實現(xiàn)中未提供的額外初始化選項删铃。
??擴展能為類添加新的便利構(gòu)造器,但是它們不能為類添加新的指定構(gòu)造器或析構(gòu)器踏堡。指定構(gòu)造器和析構(gòu)器必須總是由原始的類實現(xiàn)來提供猎唁。
(此例子是根據(jù)官方文檔寫的)
2.png
3、擴展可以為已有類型添加新的實例方法和類型方法顷蟆。
4诫隅、通過擴展添加的實例方法也可以修改該實例本身。結(jié)構(gòu)體和枚舉類型中修改 self
或其屬性的方法必須將該實例方法標(biāo)注為 mutating
帐偎,正如來自原始實現(xiàn)的可變方法一樣逐纬。
3.png
5、擴展可以為已有類型添加新下標(biāo)
6削樊、擴展可以為已有的類豁生、結(jié)構(gòu)體和枚舉添加新的嵌套類型
當(dāng)然還有最重要的協(xié)議擴展,我等到時候研究協(xié)議的時候漫贞,再總結(jié)吧
其實內(nèi)容都是根據(jù)官方swift3 寫的 只是整理出來這樣可以簡明扼要甸箱,而且我自己也可以仔細(xì)研究