问题标签 [swift-hashable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
25 浏览

swift - swift中的hashValue什么时候计算?

假设我有一个巨大的字符串,所以散列它相当昂贵。

什么时候计算 hashValue?每次我访问它时words.hashValue,还是每次修改字符串时?如果它正在访问,它是否被缓存?

0 投票
2 回答
37 浏览

swift - Swift枚举符合可识别:类型不符合可识别协议

我有一个带有关联值的枚举,我想将其用作 RxDataSources 中的一个项目。我尝试通过将其符合 Hashable 来使其符合可识别性,如下所示

我通过简单地为每个案例分配一个 Int 值来实现哈希函数。然后为了符合可识别,我添加了一个返回hashValue的id属性。这编译得很好。

现在,当我尝试使用它为节模型声明类型别名时,如下所示

它确实编译并抛出错误,Type 'DriverHubWidget' does not conform to protocol 'IdentifiableType'

我不明白为什么它不起作用,当枚举符合 Hashable 和 Identifiable 时它编译得很好,但是当使用时,一致性以某种方式无效是不是因为枚举的关联值不是 Hashable?