¿Qué es un protocolo hashable en iOS Swift? ¿Cuando lo usas?

El protocolo hashable se usa para comparar 2 objetos diferentes.

por ejemplo

clase Perro: Hashable {

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

Que esto ayude a implementar el protocolo hashable de Swift