什么是扩展以及何时使用它们

扩展为现有的类,结构,枚举或协议类型添加新功能。这包括扩展你无权访问原始源代码的类型的功能。

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

资源