类型扩展
概述
1.相当于 oc 中的 类别
2.为现有类型增加功能(特别适用没有源代码的情况)
class Rectangle{
...
}
extension Rectangle{
...
}
注意:
1.不可以增加实例存储属性,可以增加类型存储属性
2.只能增加便捷初始化器,不能增加指定初始化器
3.可以添加新的方法,但不可以重写基类方法
4.结构和枚举的扩展,如果实例方法更改 self 需要声明 mutating
协议和扩展
扩展实现协议:为类型扩展遵守的协议
扩展协议类型:扩展协议的成员,必须提供默认实现
使用扩展的建议
使用场景:
1.没有源代码
2.特殊场景下增加功能
3.复杂的大型文件分割