继承自约束协议的通用协议的约束

时间:2017-06-21 21:16:52

标签: swift swift4

我正试图利用这样的泛型。

protocol Y { ... }
protocol X: Y { ... }

protocol A: Collection where Element == Y { ... }
protocol B: A where Element == X { ... }

我收到B的定义错误:

  

相同类型约束类型' X'不符合   要求的协议' Y'

但是,X符合Y ...

我尝试使用中介关联类型DataPoint,如此

protocol A: Collection where Element == DataPoint { 
    associatedtype DataPoint: Y
    ... 
}
protocol B: A where DataPoint == X { ... }

但我得到同样的错误。是否可以在Swift 4中完成此类操作,还是必须制作两个完全独立的协议?

0 个答案:

没有答案