Swift学习:扩展

类型扩展

概述

1.相当于 oc 中的 类别
2.为现有类型增加功能(特别适用没有源代码的情况)

class Rectangle{
    ...
}

extension Rectangle{
    ...
}

注意:

1.不可以增加实例存储属性,可以增加类型存储属性
2.只能增加便捷初始化器,不能增加指定初始化器
3.可以添加新的方法,但不可以重写基类方法
4.结构和枚举的扩展,如果实例方法更改 self 需要声明 mutating

协议和扩展

扩展实现协议:为类型扩展遵守的协议

扩展协议类型:扩展协议的成员,必须提供默认实现

使用扩展的建议

使用场景:
1.没有源代码
2.特殊场景下增加功能
3.复杂的大型文件分割

你可能感兴趣的:(Swift学习:扩展)