Bài viết phổ biến của tác giả
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在 Swift 中,我们可以对序列等通用项编写扩展:
extension Sequence where Iterator.Element : ObservableType {
}
这将保证扩展仅适用于(在本例中)RxSwift observables 的序列。
但是,如果元素约束是另一个泛型,那么您能否约束该泛型?例如:
extension Sequence where Iterator.Element : ObservableType where E : MyType {
}
在上面的伪代码(不起作用)中,意图是说:
此扩展应该适用于 Observable 的序列,其中 Observable 是类型为 MyType 的 Observable,例如[可观察]
câu trả lời hay nhất
您可以将 Iterator.Element
限制为符合以下条件的类型ObservableType
然后为Iterator.Element
的关联类型E
添加另一个约束:
protocol ObservableType {
associatedtype E
// ...
}
class MyType { }
extension Sequence where Iterator.Element: ObservableType, Iterator.Element.E: MyType {
}
关于swift - 嵌套通用约束 : Constrain the T of a generic item inside a generic sequence extension that is constrained to that generic type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41700697/
Tôi là một lập trình viên xuất sắc, rất giỏi!