Junior — Middle
Quais condições devem ser atendidas para que um objeto possa ser usado como chave em um dicionário?
sobes.tech IA
Resposta da IA
No iOS (e em Swift em geral), para usar um objeto como chave num dicionário (Dictionary), ele deve satisfazer o protocolo Hashable. Isso significa que o objeto deve:
- Ter um código hash estável e único que não muda durante a vida do objeto.
- Implementar o método
hash(into:), que adiciona os componentes do objeto à função de hash. - Implementar o operador de igualdade
==, para que o dicionário possa comparar as chaves.
Exemplo:
struct Person: Hashable {
let id: Int
let name: String
}
let dict: [Person: String] = [Person(id: 1, name: "Alice"): "Developer"]
Portanto, as chaves devem ser hasháveis e comparáveis para o funcionamento correto do dicionário.