0
我有这个协议定义:如何使用协议和where子句扩展CollectionType?
protocol BarChartDataConvertible {
var barChartData: BarChartData { get }
}
而且我想延长CollectionType其中的元素特定类型的,与该协议:
extension CollectionType where Generator.Element == DataPoint {
// This works, by I also want it to be enforced by the BarChartDataConvertible
// var barChartData: BarChartData { ... }
}
我怎样才能做到这一点?
[DataPoint(), DataPoint()].barChartData
如果你的问题是“我可以使一个集合符合协议P,如果它的元素符合P”*那么答案是:目前,你不能。 –
关闭,但没有。问题是:我可以扩展一个集合,其中的元素是Type DataPoint,符合协议。我编辑了这个问题以获得更好的解释。 – nmdias
您无法声明“条件符合协议”。但是在扩展中使用'var barChartData:BarChartData {return someThingUsefulHere}',上面的代码应该会被编译。 –