読者です 読者をやめる 読者になる 読者になる

Conditional conformances

原文

swift-evolution/0143-conditional-conformances.md at d33c129f0920af0404f42219db56981411b20e76 · apple/swift-evolution · GitHub

条件付き適合

条件付き適合は、型引数が特定の要件を満たす場合にのみ、ジェネリック型が特定のプロトコルに準拠するという概念を表します。例えば、Arrayコレクションは、その要素がEquatableである場合にのみEquatableプロトコルを実装することができます。 例えば、以下のように実装されます。

extension Array: Equatable where Element: Equatable {
  static func ==(lhs: Array<Element>, rhs: Array<Element>) -> Bool { ... }
}

ジェネリクスを扱う時に自然に扱うことができるようになり、ライブラリの作成に非常に貢献することになる。