我可以这样做:
extension Dictionary : MyProtocol {}
我可以这样做:
extension Dictionary where Key: String, Value: Int {}
但我不能这样做:
extension Dictionary where Key: String, Value: Int : MyProtocol {}
或者这个:
extension Dictionary : MyProtocol where Key: String, Value: Int {}
格式化的正确方法是什么,以允许我指定类型并指定遵守协议?
答案 0 :(得分:1)
在这里回答:How to declare Dictionary<String, Decimal> complies to protocol
TLDR:这是不可能的。
计划将来的Swift版本: https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#conditional-conformances-
有关如何实施的详细信息:https://github.com/apple/swift-evolution/blob/master/proposals/0143-conditional-conformances.md
答案 1 :(得分:0)
Extension of type 'Dictionary' with constraints cannot have an inheritance clause
所以可能它根本就不可能。