【发布时间】:2019-04-09 05:45:45
【问题描述】:
有没有办法在函数中使用泛型协议作为数据类型?
public protocol ICRUDOperation {
associatedtype T
func insert(data:T)
func update(data:T)
func get(data:T) -> [T]
func GetList(data: BaseModel) -> Array<T>
func GetPage(data: BaseModel) -> Array<T>
func Delete(data: T)
}
在下面的函数中,我得到了错误
func Delegate1<W: ICRUDOperation>(sqlite: W, service: W, data: T) {
sqlite.insert(data: data)
}
错误:无法转换类型“T”的值(泛型的泛型参数 类'Decision')到预期的参数类型'W.T'(关联类型 协议“ICRUDOOperation”)
【问题讨论】:
标签: swift types interface protocols