Sobes.tech
Junior — Middle

Que métodos o protocolo Hashable implementa em Swift?

sobes.tech IA

Resposta da IA

O protocolo Hashable em Swift requer a implementação do método hash(into:), que aceita um parâmetro: um objeto do tipo inout Hasher. Nesse método, deve-se passar todas as propriedades que influenciam a unicidade do objeto para o hash, a fim de formar um código hash.

Exemplo:

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

    func hash(into hasher: inout Hasher) {
        hasher.combine(name)
        hasher.combine(age)
    }
}

Além disso, para que um tipo seja Hashable, ele também deve cumprir Equatable, ou seja, implementar o operador ==. Na maioria dos casos, o compilador gera esses métodos automaticamente se todas as propriedades também forem Hashable e Equatable.