2
在斯威夫特,我有一个协议是这样的:在Swift中,如何在类型参数受协议约束的泛型类中使用关联类型?
protocol P {
associatedtype T
func f(val:T)
}
我想定义一个类是这样的:
class B<X:P> {
}
然后是B类中使用的associatedtype
牛逼
我已经试过这样:
class B<X:P> {
var v:T // compiler says "Use of undeclared type"
init() {
}
}
我也三编辑此:
class B<X:P, Y> {
typealias T = Y
var v:T
init() {
}
func g(val:X) {
val.f(val: v) // compiler says "Cannot invoke 'f' with an argument list of type '(val:Y)'
}
}
有什么建议吗?
谢谢!这就是它! –