Sobes.tech
Junior — Middle

Pode-se usar um objeto como chave numa coleção Dictionary ou estrutura de dados semelhante?

sobes.tech IA

Resposta da IA

No iOS (Swift ou Objective-C), pode usar objetos como chaves em dicionários (Dictionary), mas o objeto deve cumprir certos requisitos.

Em Swift, as chaves do dicionário devem conformar ao protocolo Hashable, ou seja, o objeto deve ter métodos de hash e comparação de igualdade corretamente implementados. Isso é necessário para que o dicionário possa armazenar e procurar valores de forma eficiente por suas chaves.

Exemplo de uso de um objeto personalizado como chave:

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

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

Se o objeto não implementar Hashable, não pode ser usado como chave. Em Objective-C, as chaves do dicionário devem ser objetos que implementem os métodos -hash e -isEqual:.

Portanto, é possível usar objetos como chaves se eles implementarem corretamente o hash e a comparação.