我正试图利用这样的泛型。
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中完成此类操作,还是必须制作两个完全独立的协议?