Sobes.tech
Junior — Middle

Que tipos de dados ou objetos podem atuar como chaves em dicionários ou tabelas hash?

sobes.tech IA

Resposta da IA

Nos dicionários ou tabelas de hash, as chaves podem ser objetos que satisfaçam os seguintes requisitos:

  • Possuem métodos de comparação de igualdade (equals em Java, isEqual em Swift) e cálculo de hash (hashCode em Java) corretamente implementados.
  • São imutáveis ou pelo menos não se alteram após serem usados como chave, para evitar problemas na busca.

No iOS (Swift), as chaves em dicionários (Dictionary) geralmente são tipos que conformam ao protocolo Hashable. Estes podem ser:

  • Tipos padrão: String, Int, Double, Bool.
  • Estruturas ou classes personalizadas que implementam o protocolo Hashable.

Exemplo:

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

var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"

Assim, as chaves devem ser hasháveis e imutáveis para o funcionamento correto do dicionário.