¿Se puede usar un objeto como clave en una colección Dictionary o estructura de datos similar?
sobes.tech AI
Respuesta de la IA
En iOS (Swift o Objective-C), se pueden usar objetos como claves en diccionarios (Dictionary), pero el objeto debe cumplir ciertos requisitos.
En Swift, las claves del diccionario deben cumplir con el protocolo Hashable, es decir, el objeto debe tener métodos de hash y comparación de igualdad correctamente implementados. Esto es necesario para que el diccionario pueda almacenar y buscar valores de manera eficiente por las claves.
Ejemplo de uso de un objeto personalizado como clave:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
Si el objeto no implementa Hashable, no se puede usar como clave. En Objective-C, las claves del diccionario deben ser objetos que implementen los métodos -hash y -isEqual:.
Por lo tanto, se pueden usar objetos como claves si implementan correctamente el hash y la comparación.