나는이 프로토콜 정의가 :프로토콜과 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}'를 사용하면 위의 코드를 컴파일해야합니다. –