在Swift中,我们可以编写泛型项(如序列)的扩展:
extension Sequence where Iterator.Element : ObservableType {
}这将保证扩展只适用于(在本例中) RxSwift可观测值的序列。
但是,如果元素约束是另一个泛型,那么可以约束该泛型吗?例如:
extension Sequence where Iterator.Element : ObservableType where E : MyType {
}在上述伪代码(不起作用)中,意图是:
此扩展应适用于可观测序列,其中可观测序列是MyType类型的可观测序列,例如,可观测序列
发布于 2017-01-17 15:26:03
可以将Iterator.Element限制为符合ObservableType的类型,然后为关联的E of Iterator.Element添加另一个约束。
protocol ObservableType {
associatedtype E
// ...
}
class MyType { }
extension Sequence where Iterator.Element: ObservableType, Iterator.Element.E: MyType {
}https://stackoverflow.com/questions/41700697
复制相似问题