swift - dictionaries - Hacer struct Hashable?
swift dictionary example (1)
Estoy intentando crear un diccionario del tipo [petInfo : UIImage]()
pero Type ''petInfo'' does not conform to protocol ''Hashable''
el error. El Type ''petInfo'' does not conform to protocol ''Hashable''
. Mi estructura de información es esta:
struct petInfo {
var petName: String
var dbName: String
}
Así que, de alguna manera, quiero que sea hashable, pero ninguno de sus componentes es un número entero, que es lo que la var hashValue: Int
requiere. ¿Cómo puedo hacer que se ajuste al protocolo si ninguno de sus campos son enteros? ¿Puedo usar el dbName
si sé que va a ser único para todas las apariciones de esta estructura?
Simplemente devuelva dbName.hashValue
desde su función hashValue
. Para tu información, el valor de hash no necesita ser único. El requisito es que dos objetos que sean iguales también deben tener el mismo valor hash.
struct PetInfo: Hashable {
var petName: String
var dbName: String
var hashValue: Int {
return dbName.hashValue
}
static func == (lhs: PetInfo, rhs: PetInfo) -> Bool {
return lhs.dbName == rhs.dbName && lhs.petName == rhs.petName
}
}