Sobes.tech
Junior — Middle

Que tipos de objetos podem ser usados como elementos-chave numa coleção do tipo Set?

sobes.tech IA

Resposta da IA

Na coleção do tipo Set no iOS (por exemplo, NSSet ou Swift Set), os elementos-chave podem ser objetos que satisfaçam os seguintes requisitos:

  • Em Objective-C (NSSet): os objetos devem suportar os métodos -hash e -isEqual: para comparação e hashing corretos.
  • Em Swift (Set): os elementos devem conformar ao protocolo Hashable, ou seja, ter um valor de hash e a capacidade de comparação de igualdade.

Isto é necessário para que a coleção possa armazenar de forma eficiente elementos únicos e realizar operações de busca rapidamente.

Exemplo em Swift:

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

var peopleSet = Set<Person>()
peopleSet.insert(Person(id: 1, name: "Иван"))

Portanto, quaisquer objetos que implementem Hashable (em Swift) ou os métodos hash e isEqual: (em Objective-C) podem ser elementos de Set.