Sobes.tech
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.