Sobes.tech
Junior — Middle

Quais passos devem ser seguidos para implementar a conformidade da estrutura com o protocolo Equatable em Swift?

sobes.tech IA

Resposta da IA

Para que a estrutura em Swift seja compatível com o protocolo Equatable, é necessário:

  1. Declarar a conformidade ao protocolo na declaração da estrutura.
  2. Implementar a função ==, que compara duas instâncias da estrutura para verificar se são iguais.

A partir do Swift 4.1, o compilador pode gerar automaticamente a implementação de == para estruturas, se todas as suas propriedades também forem compatíveis com Equatable.

Exemplo:

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

// Implementação gerada automaticamente:
// 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

Se for necessário uma comparação personalizada, pode-se implementar o operador manualmente:

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