扩展的语法
extension SomeType{
//new functionality to add to SomeType goes here
}
extension SomeType: SomeProtocol, AnotherProtocol {
// implementation of protocol requirements goes here
}
计算属性
扩展可以为现有类型添加实例计算属性以及类计算属性。
但不能添加存储属性,也不能为现有的属性添加观察器。
初始化器
扩展可以为现有类型添加便利的初始化器。
但不能添加指定的初始化器,也不能添加析构器。
对于值类型来说,如果其所有的存储类型都有默认值,且没有自定义的初始化器,
那么,在新添加的初始化器中,可以调用值类型的默认构造器和 memberwise
构造器。
方法
扩展可以为现有类型添加实例方法以及类方法。
下标
扩展可以为现有类型添加下标方法。
嵌套类型
扩展可以为现有类型添加嵌套的类,属性或者枚举。