Junior — Middle
Como implementar o uso de objetos personalizados como chaves ao trabalhar com dicionários?
sobes.tech IA
Resposta da IA
Para usar objetos personalizados como chaves em dicionários (por exemplo, em Swift Dictionary), esses objetos devem cumprir os protocolos Hashable e Equatable.
Isto significa que a classe ou estrutura deve implementar métodos para calcular o valor hash e verificar a igualdade de objetos.
Exemplo em Swift:
struct User: Hashable {
let id: Int
let name: String
func hash(into hasher: inout Hasher) {
hasher.combine(id)
}
static func == (lhs: User, rhs: User) -> Bool {
return lhs.id == rhs.id
}
}
var dict: [User: String] = [:]
let user1 = User(id: 1, name: "Alice")
dict[user1] = "Admin"
Neste exemplo, a chave do dicionário é um objeto User, identificado de forma única por id. A implementação de hash(into:) e == permite armazenar e procurar objetos no dicionário de forma correta.