Swift 泛型与高阶函数深度解析
1. 泛型约束中的 where 子句
where 子句可用于定义更复杂的类型约束,比如让某个类型同时符合多个带有约束的协议。在泛型参数列表后添加 where 子句,就能为类型参数及其关联类型指定额外要求。 where 子句由 where 关键字开头,后面跟着一个或多个用逗号分隔的要求。
例如,要表达泛型类型 T 继承自类 C 并符合协议 V ,可以写成 <T where T: C, T: V> 。也可以约束类型参数的关联类型使其符合特定协议,如 <Seq: SequenceType where Seq.Generator.Element: Equatable> ,此约束规定 Seq 要符合 SequenceType 协议,且 Seq.Generator.Element 类型要符合 Equatable 协议,确保序列中的每个元素都是可比较的。还能使用 == 运算符指定两个类型相同,像 <Seq1: SequenceType, Seq2: SequenceType where Seq1.Generator.Element == Seq2.Generator.Element>
超级会员免费看
订阅专栏 解锁全文
6

被折叠的 条评论
为什么被折叠?



