加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – make struct Hashable?

发布时间:2020-12-14 05:49:59 所属栏目:百科 来源:网络整理
导读:我正在尝试创建排序[petInfo:UIImage]()的字典,但我得到错误类型’petInfo’不符合协议’Hashable’。我的petInfo结构是这样的: struct petInfo { var petName: String var dbName: String} 所以我想以某种方式使它可以散列,但它的组件都不是一个整数,
我正在尝试创建排序[petInfo:UIImage]()的字典,但我得到错误类型’petInfo’不符合协议’Hashable’。我的petInfo结构是这样的:
struct petInfo {
    var petName: String
    var dbName: String
}

所以我想以某种方式使它可以散列,但它的组件都不是一个整数,这是var hashValue:Int所需要的。如果它的字段都不是整数,我该如何使它符合协议?如果我知道它对于所有这个结构的出现都是唯一的,我可以使用dbName吗?

只需从hashValue函数返回dbName.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
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读