Junior — Middle
¿Qué condiciones y características deben tener los objetos para que puedan usarse como claves en un diccionario?
sobes.tech AI
Respuesta de la IA
Para que un objeto pueda ser utilizado como clave en un diccionario (por ejemplo, en NSDictionary o Swift Dictionary), debe cumplir con las siguientes condiciones:
- Hashabilidad: el objeto debe tener un método de cálculo de hash correctamente implementado (
hashen Swift,hashValueohash(into:)), para que el diccionario pueda encontrar la clave rápidamente. - Comparabilidad por igualdad: el objeto debe implementar correctamente el método de comparación de igualdad (
isEqualen Objective-C,Equatableen Swift), para que el diccionario pueda distinguir diferentes claves.
Por ejemplo, en Swift, para usar un tipo personalizado como clave, es necesario implementar los protocolos Hashable y Equatable:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
De esta manera, los objetos deben ser inmutables en los campos que participan en el cálculo del hash y la comparación, para que las claves permanezcan estables en el diccionario.