【发布时间】:2020-08-04 16:24:34
【问题描述】:
这是一个例子:
protocol Feed {
func items<T>() -> [T]? where T: FeedItem
}
protocol FeedItem {}
class FeedModel: Feed, Decodable {
func items<T>() -> [T]? where T : FeedItem {
return [FeedItemModel]() // Error: Cannot convert return expression of type '[FeedItemModel]' to return type '[T]?'
}
}
class FeedItemModel: FeedItem, Decodable {}
为什么会这样:
A) 当T 是泛型而不是类型时,尝试转换为T?
B) 不将FeedItemModel 识别为符合FeedItem?
【问题讨论】:
-
Unerlated,但是拥有一个可选数组几乎从来都不是正确的方法——如果没有值就使用一个空数组。
标签: swift function generics protocols