Swift では、特定のタイプの要素を含むシーケンスを拡張できます。たとえば、次のようになります。
extension SequenceType where Generator.Element == Rect {
func intersection() -> Rect? { ... }
}
// when using
let intersection = [rect1, rect2, rect3].intersection()
これはいいです。Rect<Float>
ただし、 Rect 自体がジェネリック型 (など)の場合、どうすれば同じことができRect<Double>
ますか? 私は試した
extension SequenceType where Generator.Element == Rect<T>
しかし、コンパイラは「宣言されていない型 T」について不平を言います。どこに入れたらいいのかさっぱりわかりません。現在、すべての浮動小数点型に特化する必要があります。