一、术语:指定类型
typealias:用于给关联类型指定类型;
通过类型推断给关联类型指定类型太过烧脑;
二、类型指定
1、具体类型实现协议后,直接指定;作为普通的泛型类型使用,指定类型即可;
2、将协议实现为泛型构造器,关联类型通过泛型构造器的输入类型指定;
3、关联类型本身有协议约束;需要先构建指定类型再进行指定;
三、关联类型的引用与约束
引用为:协议名称+关联类型的形式;
约束:与泛型类型的约束形式相同。
public extension Collection where Iterator.Element == KingfisherOptionsInfoItem
public extension Array where Element == UInt8
extension Kingfisher where Base: Image