swift的关联类型

时间:2022-04-07 16:30:36

一、术语:指定类型

typealias:用于给关联类型指定类型;

通过类型推断给关联类型指定类型太过烧脑;

二、类型指定

1、具体类型实现协议后,直接指定;作为普通的泛型类型使用,指定类型即可;

2、将协议实现为泛型构造器,关联类型通过泛型构造器的输入类型指定;

3、关联类型本身有协议约束;需要先构建指定类型再进行指定;

三、关联类型的引用与约束

引用为:协议名称+关联类型的形式;

约束:与泛型类型的约束形式相同。

public extension Collection where Iterator.Element == KingfisherOptionsInfoItem

public extension Array where Element == UInt8

extension Kingfisher where Base: Image