我想在Swift中实现一个带有两个参数的通用类。一个必需的约束是第一个参数是协议,第二个参数必须实现此协议。
代码:
protocol Protocol {}
class Generic<T: Protocol, U> where U: T {
}
编译器错误说:
错误:类型“ U”限制为非协议,非类类型“ T”
但这并不是真的,因为T
是一个协议。
您知道如何实现吗?
答案 0 :(得分:0)
我认为您想要的是
protocol Protocol {}
class Generic<T: Protocol> {
init(type: T.Type, instance: T) {
}
}
但是用例可以帮助我们了解您要实现的目标...