Sobes.tech
Junior — Middle

Quelles étapes doivent être suivies pour implémenter la conformité de la structure au protocole Equatable en Swift?

sobes.tech IA

Réponse de l'IA

Pour qu'une structure en Swift soit conforme au protocole Equatable, il faut :

  1. Déclarer la conformité au protocole dans la déclaration de la structure.
  2. Implémenter la fonction ==, qui compare deux instances de la structure pour l'égalité.

Depuis Swift 4.1, le compilateur peut générer automatiquement l'implémentation de == pour les structures si toutes leurs propriétés sont également conformes à Equatable.

Exemple :

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

// Implémentation générée automatiquement :
// 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

Si une comparaison personnalisée est nécessaire, l'opérateur peut être implémenté manuellement :

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
    }
}