首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套泛型约束:在被约束到该泛型类型的泛型序列扩展中约束泛型项的T

嵌套泛型约束:在被约束到该泛型类型的泛型序列扩展中约束泛型项的T
EN

Stack Overflow用户
提问于 2017-01-17 15:14:54
回答 1查看 719关注 0票数 5

在Swift中,我们可以编写泛型项(如序列)的扩展:

代码语言:javascript
复制
extension Sequence where Iterator.Element : ObservableType {

}

这将保证扩展只适用于(在本例中) RxSwift可观测值的序列。

但是,如果元素约束是另一个泛型,那么可以约束该泛型吗?例如:

代码语言:javascript
复制
extension Sequence where Iterator.Element : ObservableType where E : MyType {

 }

在上述伪代码(不起作用)中,意图是:

此扩展应适用于可观测序列,其中可观测序列是MyType类型的可观测序列,例如,可观测序列

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-17 15:26:03

可以将Iterator.Element限制为符合ObservableType的类型,然后为关联的E of Iterator.Element添加另一个约束。

代码语言:javascript
复制
protocol ObservableType {
    associatedtype E
    // ...
}

class MyType { }

extension Sequence where Iterator.Element: ObservableType, Iterator.Element.E: MyType {

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41700697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档