0Pricing
Swift Academy · Lesson

Conditional Conformance

Conform generically only when constraints are met.

What Is Conditional Conformance?

Conditional conformance makes a generic type conform to a protocol only when its type parameters satisfy certain constraints. The classic example: an Array is Equatable only if its Element is Equatable.

extension Array where Element: Equatable {
    func allEqual(to x: Element) -> Bool {
        allSatisfy { $0 == x }
    }
}

Built-In Example

The standard library already uses this: [Int] is Equatable because Int is. Two arrays compare equal element-by-element.

let a = [1, 2, 3]
let b = [1, 2, 3]
print(a == b)

All lessons in this course

  1. Protocols as Contracts
  2. Default Implementations in Extensions
  3. Protocol Composition
  4. Conditional Conformance
← Back to Swift Academy