我正在尝试创建这种字典,[petInfo : UIImage]()但出现错误Type 'petInfo' does not conform to protocol 'Hashable'。我的petInfo结构是这样的:
[petInfo : UIImage]()
Type 'petInfo' does not conform to protocol 'Hashable'
struct petInfo { var petName: String var dbName: String }
因此,我想以某种方式使其可散列,但是其组成部分都不是var hashValue: Int要求的整数。如果其所有字段都不是整数,如何使它符合协议?dbName如果我知道该结构在所有情况下都是唯一的,我可以使用吗?
var hashValue: Int
dbName
只需dbName.hashValue从hashValue函数返回即可。仅供参考-哈希值不需要唯一。要求两个相等的对象也必须具有相同的哈希值。
dbName.hashValue
hashValue
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 } }