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.