特定の型 FooType の要素を含むコレクション型の拡張機能を作成しようとしていますが、これはうまく機能します:
extension CollectionType where Generator.Element == FooClass
{
func doSomething()
}
let collectionType = [FooClass]()
collectionType.doSomething()
私の問題は、Foo クラスのサブクラスを含むコレクション型に対してもこの拡張機能を機能させたいということです。
let collectionType = [FooSubclass]()
collectionType.doSomething() // Doesn't work
「==」演算子をオーバーライドして、一致するまでスーパークラスのチェーンをループすることもできますが、これが正しい方法かどうかはわかりません。
public func ==(t0: Any.Type?, t1: Any.Type?) -> Bool
これを解決できるwhere句に何かが欠けていますか、それとも完全に間違っていますか?