Sobes.tech
Junior — Middle

Welke stappen moeten worden ondernomen om de conformiteit van de structuur met het Equatable-protocol in Swift te implementeren?

sobes.tech AI

Antwoord van AI

Om een structuur in Swift te laten voldoen aan het protocol Equatable, moet je:

  1. De conformiteit aan het protocol declareren in de structuurdefinitie.
  2. De functie == implementeren, die twee instanties van de structuur vergelijkt op gelijkheid.

Vanaf Swift 4.1 kan de compiler automatisch de implementatie van == genereren voor structuren, als al hun eigenschappen ook Equatable zijn.

Voorbeeld:

struct Point: Equatable {
    var x: Int
    var y: Int
}

// Automatisch gegenereerde implementatie:
// static func == (lhs: Point, rhs: Point) -> Bool {
//     return lhs.x == rhs.x && lhs.y == rhs.y
// }

let p1 = Point(x: 1, y: 2)
let p2 = Point(x: 1, y: 2)
print(p1 == p2) // true

Als een aangepaste vergelijking nodig is, kan de operator handmatig worden geïmplementeerd:

struct Person: Equatable {
    var name: String
    var age: Int

    static func == (lhs: Person, rhs: Person) -> Bool {
        return lhs.name.lowercased() == rhs.name.lowercased() && lhs.age == rhs.age
    }
}