Sobes.tech
Junior — Middle

Como é implementada a unicidade dos elementos dentro de uma coleção do tipo Set?

sobes.tech IA

Resposta da IA

No iOS, a coleção Set garante a unicidade dos elementos através do uso de hashing e comparação de igualdade.

Cada elemento em Set deve cumprir o protocolo Hashable, que exige a implementação de:

  • o método hash(into:) — para calcular o hash do elemento;
  • o operador == — para verificar a igualdade de dois elementos.

Quando adiciona um elemento ao Set, o sistema calcula seu hash e verifica se já existe um elemento com o mesmo hash e que seja igual. Se sim, o elemento não é adicionado, garantindo a unicidade.

Exemplo:

struct Person: Hashable {
    let id: Int
    let name: String
}

var people = Set<Person>()
people.insert(Person(id: 1, name: "Alice"))
people.insert(Person(id: 1, name: "Alice")) // não será adicionado, pois já existe um elemento igual

Dessa forma, a unicidade no Set é alcançada através do hashing e da comparação de elementos.