Junior — Middle
Que condições e características os objetos devem ter para poderem ser usados como chaves em um dicionário?
sobes.tech IA
Resposta da IA
Para que um objeto possa ser usado como chave num dicionário (por exemplo, em NSDictionary ou Swift Dictionary), ele deve satisfazer as seguintes condições:
- Hashabilidade: o objeto deve ter um método de cálculo de hash corretamente implementado (
hashem Swift,hashValueouhash(into:)), para que o dicionário possa encontrar a chave rapidamente. - Comparabilidade por igualdade: o objeto deve implementar corretamente o método de comparação de igualdade (
isEqualem Objective-C,Equatableem Swift), para que o dicionário possa distinguir diferentes chaves.
Por exemplo, em Swift, para usar um tipo personalizado como chave, é necessário implementar os protocolos Hashable e Equatable:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
Dessa forma, os objetos devem ser imutáveis nos campos que participam do cálculo do hash e da comparação, para que as chaves permaneçam estáveis no dicionário.