Junior — Middle
¿Cómo implementar el uso de objetos personalizados como claves al trabajar con diccionarios?
sobes.tech AI
Respuesta de la IA
Para usar objetos personalizados como claves en diccionarios (por ejemplo, en Swift Dictionary), estos objetos deben cumplir con los protocolos Hashable y Equatable.
Esto significa que la clase o estructura debe implementar métodos para calcular el valor hash y verificar la igualdad de objetos.
Ejemplo en 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"
En este ejemplo, la clave del diccionario es un objeto User, identificado de forma única por id. La implementación de hash(into:) y == permite almacenar y buscar objetos en el diccionario de manera correcta.