使用 extension
关键字声明扩展:
extension SomeType {
// 在这里给 SomeType 添加新的功能
}
扩展可以扩充一个现有的类型,给它添加一个或多个协议。协议名称的写法和类或者结构体一样:
extension SomeType: SomeProtocol, AnotherProtocol {
// 协议所需要的实现写在这里
}
这种遵循协议的方式在 在扩展里添加协议遵循 中有描述。
扩展可以使用在现有范型类型上,就像 泛型扩展 中描述的一样。你还可以使用扩展给泛型类型有条件的添加功能,就像 具有泛型 Where 子句的扩展 中描述的一样。
注意
对一个现有的类型,如果你定义了一个扩展来添加新的功能,那么这个类型的所有实例都可以使用这个新功能,包括那些在扩展定义之前就存在的实例。