什麼是擴充套件以及何時使用它們

擴充套件為現有的類,結構,列舉或協議型別新增新功能。這包括擴充套件你無權訪問原始原始碼的型別的功能。

Swift 中的擴充套件可以:

  • 新增計算屬性和計算型別屬性
  • 定義例項方法和型別方法
  • 提供新的初始化程式
  • 定義下標
  • 定義和使用新的巢狀型別
  • 使現有型別符合協議

何時使用 Swift Extensions:

  • Swift 的附加功能
  • UIKit / Foundation 的附加功能
  • 附加功能,無需與其他人員程式碼混淆
  • 細分類:資料/功能/代表

何時不使用:

  • 從另一個檔案擴充套件你自己的類

簡單的例子:

extension Bool {
    public mutating func toggle() -> Bool {
        self = !self
        return self
    }
}

var myBool: Bool = true
print(myBool.toggle()) // false

資源