5
我要使用通用的協議類型爲函數的返回類型是這樣的:斯威夫特協議通用的函數返回類型
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。 – tktsubota
@TroyT代碼行'func createC() - > P { –
ufosky