El protocolo hashable se usa para comparar 2 objetos diferentes.
por ejemplo
clase Perro: Hashable {
- ¿Cuál es la fracción promedio de usuarios que realizan una compra en la aplicación?
- ¿Por qué Apple no admite la facturación del operador como método de pago para compras de contenido (en la aplicación o de otra manera)?
- ¿Debería pagarle a mi empresa de desarrollo por la etapa de desarrollo previo de la aplicación (wireframes) cuando podría hacerlo yo mismo con un programa disponible en Internet?
- ¿Será difícil para mí conseguir un trabajo como ingeniero de iOS si conozco Swift y no Objective-C?
- ¿La plataforma Windows Phone finalmente morirá y permitirá que los desarrolladores se centren en las plataformas Android e iOS más eficientes?
var uid: Int
nombre var: cadena
var age: Int
init (uid: Int, nombre: String, edad: Int) {
self.uid = uid
self.name = name
self.age = age
}
}
let dog1 = Dog (uid: 1, nombre: “Scrappy”, edad: 4)
let dog2 = Dog (uid: 1, nombre: “Scrappy”, edad: 4)
si perro1 == perro2 {
print (“mismo”)
}más{
print (“no es lo mismo”)
}
no podemos comparar los objetos dog1 y dog2 a pesar de que ambos objetos son iguales
podemos comparar ambos objetos heredando el protocolo hashable (el hashaable nuevamente hereda el protocolo equitativo)
ahora cambiando la clase a
clase Perro: Hashable {
var uid: Int
nombre var: cadena
var age: Int
var hashValue: Int {
return uid.hashValue
}
init (uid: Int, nombre: String, edad: Int) {
self.uid = uid
self.name = name
self.age = age
}
func estática == (lhs: Dog, rhs: Dog) -> Bool {
return lhs.uid == rhs.uid
}
}
podemos comparar y ambos objetos son iguales