Swift通用类参数实现另一个参数

时间:2018-07-17 07:43:31

标签: ios swift generics

我想在Swift中实现一个带有两个参数的通用类。一个必需的约束是第一个参数是协议,第二个参数必须实现此协议。

代码:

protocol Protocol {}

class Generic<T: Protocol, U>  where U: T {

}

编译器错误说:

  

错误:类型“ U”限制为非协议,非类类型“ T”

但这并不是真的,因为T是一个协议。

您知道如何实现吗?

1 个答案:

答案 0 :(得分:0)

认为您想要的是

protocol Protocol {} 
class Generic<T: Protocol> {
    init(type: T.Type, instance: T) {

    } 
}

但是用例可以帮助我们了解您要实现的目标...