【发布时间】:2016-10-17 11:50:57
【问题描述】:
是否可以在 Swift 中声明具有泛型协议类型的变量?
如果没有,有什么替代方案?我无法重用具有不同类型参数的协议,更不用说模拟它,这似乎是一个巨大的缺点。
【问题讨论】:
-
您的意思是具有关联类型的协议?
-
是的,我想实现通用接口在许多其他语言中实现的功能。到目前为止,我的解决方法是创建一个没有实际功能的基类并在子类中覆盖它。
-
好的,在 Swift 1-3 中不能声明具有关联类型的协议变量。但看起来泛型将在 Swift 4 中得到改进。检查github.com/apple/swift-evolution。
-
我会等到 2017 年底 ;-)
标签: swift generics swift-protocols