【发布时间】:2016-06-01 04:34:13
【问题描述】:
我想使用通用协议类型作为函数返回类型,如下所示:
protocol P {
associatedtype T
func get() -> T?
func set(v: T)
}
class C<T>: P {
private var v: T?
func get() -> T? {
return v
}
func set(v: T) {
self.v = v
}
}
class Factory {
func createC<T>() -> P<T> {
return C<T>()
}
}
但是这段代码编译时报错:
- 无法专门化非泛型类型“P”
- 函数签名中未使用通用参数“T”
有什么方法可以用Swift实现类似的功能吗?
【问题讨论】:
-
哪些行有错误?我想我知道#2 在哪里而不是 #1。
-
@TroyT 代码为
func createC<T>() -> P<T> {的行