【发布时间】:2016-05-21 06:04:30
【问题描述】:
我想做这样的事情:
class SomeClass<Element> { }
extension SomeClass: SomeProtocol where Element: String { }
它告诉我:
带有约束的“SomeClass”类型的扩展不能有继承子句。
到目前为止,我可以发誓这是协议/扩展/通用/关联类型范式的基本功能之一。还有其他方法可以实现吗?
【问题讨论】:
-
不,目前不可能。这就是 Array 不符合 Equatable 的原因,即使它的元素是 Equatable。
-
在下一个 swift 版本中有一个已接受的建议来实现这一点:github.com/apple/swift-evolution/blob/master/proposals/…
-
这将在 Swift 4.1 中出现! swift.org/blog/conditional-conformance
标签: swift generics constraints protocols