如何在Swift中构建没有协议的泛型?

时间:2015-04-29 14:55:36

标签: swift generics

我收到以下错误...

'T' cannot be constructed because it has no accessible initializers

编译时......

class Sub<T : Equitable> {
    func def(v : T) -> Bool{
        var d = T()          // <- Error
        return d == v
    }
}
var s = Sub<Int>()
println(s.def(0), s.def(1))  // I'm expecting "true, false"

我理解为了初始化泛型类型,它需要符合包含init()构造函数的协议。比如...

protocol A : Equitable {
    init()
}

class Sub<T : A> {

然后我会得到错误

Type 'Int' does not conform to protocol 'A'

var s = Sub<Int>()

那么我如何才能使Int或Bool这样的值类型符合可以初始化的协议?

0 个答案:

没有答案