1. 程式人生 > 其它 >Swift文件Chapter 20 擴充套件

Swift文件Chapter 20 擴充套件

擴充套件可以給現有的類,結構體,列舉還有協議新增新的功能。

擴充套件的語法

extension SomeType {
  // 在這裡給 SomeType 新增新的功能
}

擴充套件可以擴充一個現有的型別,給它新增一個或多個協議。協議名稱的寫法和類或者結構體一樣:

extension SomeType: SomeProtocol, AnotherProtocol {
  // 協議所需要的實現寫在這裡
}

計算型屬性

extension Double {
    var km: Double { return self * 1_000.0 }
    var m: Double { return self }
    var cm: Double { return self / 100.0 }
    var mm: Double { return self / 1_000.0 }
    var ft: Double { return self / 3.28084 }
}

擴充套件可以新增新的計算屬性,但是它們不能新增儲存屬性,或向現有的屬性新增屬性觀察者。

構造器

擴充套件可以給現有的型別新增新的構造器,通過擴充套件提供一個新的構造器,你有責任確保每個通過該構造器建立的例項都是初始化完整的。

方法

擴充套件可以給現有型別新增新的例項方法和類方法。

可變例項方法

通過擴充套件新增的例項方法同樣也可以修改(或 mutating(改變))例項本身。結構體和列舉的方法,若是可以修改self或者它自己的屬性,則必須將這個例項方法標記為mutating,就像是改變了方法的原始實現。

下標

擴充套件可以給現有的型別新增新的下標。

巢狀型別

擴充套件可以給現有的類,結構體,還有列舉新增新的巢狀型別。