私はこのプロトコル定義があります。プロトコルと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に適合させることはできますか?"と答える:現在、あなたはできません。 –
閉じるが、いいえ。問題は次のとおりです。要素がタイプ・データポイントであり、プロトコルに準拠しているコレクションを拡張できますか?私はより明確にするために質問を編集しました。 – nmdias
「プロトコルに条件付き適合」を宣言することはできません。しかし、拡張で 'var barChartData:BarChartData {return someThingUsefulHere} 'を使用すると、上記のコードをコンパイルする必要があります。 –