swift – 嵌套通用约束:限制泛型序列扩展中的泛型项的T,该扩展受限于该泛型类型

swift – 嵌套通用约束:限制泛型序列扩展中的泛型项的T,该扩展受限于该泛型类型,第1张

概述在 Swift中,我们可以编写通用项目的扩展,例如序列: extension Sequence where Iterator.Element : ObservableType {} 这将保证扩展仅适用于(在这种情况下)RxSwift可观察量的序列. 但是,如果元素约束是另一个泛型,那么你可以约束那个泛型吗?例如.: extension Sequence where Iterator.Eleme 在 Swift中,我们可以编写通用项目的扩展,例如序列:

extension Sequence where Iterator.Element : ObservableType {}

这将保证扩展仅适用于(在这种情况下)RxSwift可观察量的序列.

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

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

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

此扩展应该应用于Observable的序列,其中Observable是MyType类型的Observable,例如[可观察]

解决方法 您可以将Iterator.Element限制为符合的类型
ObservableType然后为Iterator.Element的关联类型E添加另一个约束:

protocol ObservableType {    associatedtype E    // ...}class MyType { }extension Sequence where Iterator.Element: ObservableType,Iterator.Element.E: MyType {}
总结

以上是内存溢出为你收集整理的swift – 嵌套通用约束:限制泛型序列扩展中的泛型项的T,该扩展受限于该泛型类型全部内容,希望文章能够帮你解决swift – 嵌套通用约束:限制泛型序列扩展中的泛型项的T,该扩展受限于该泛型类型所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1016825.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存