0
如果associatedtype E
是Result<T>
,我想使用函数扩展协议。我想达到的是类似于以下内容:在协议扩展子句中使用不带参数的泛型类型
extension SharedSequenceConvertibleType where E == Result {
func filterResult(success: Bool) -> RxCocoa.SharedSequence<Self.SharingStrategy, Self.E> {
return self.filter { result in
switch (result) {
case .Success(_):
return success
case .Failure(_):
return !success
}
}
}
}
enum Result<Element> {
case Success(Element)
case Failure(Swift.Error)
}
不幸的是,斯威夫特抱怨Reference to generic type 'Result' requires arguments in <…>
。如果我使用建议的Fix-It将其更改为Result<Any>
,则不能在Result<MyObject>
'Result<LoginInfo>' is not convertible to 'Result<Any>'
上使用filterResult
。正如你所看到的,我实际上并不关心Element
这个类型。
有没有办法在Swift 3中实现这一点?