我怎么能理解这句话"two instances with the same hash value don’t necessarily compare equally. "



当我阅读《Advanced Swift》一书和"哈希要求"一章时,我对这个解释感到困惑

两个相等的实例(由 == 实现定义(必须具有相同的哈希值。反之则不然:具有相同哈希值的两个实例不一定相等。

我如何理解"反向"情况,或者为什么具有相同哈希值的两个实例不一定平等地比较。

将哈希值视为给定对象实例的快速紧凑非唯一标识符。唯一的硬条件是:如果两个对象相等,根据==运算符,则两个实例必须具有完全相同的哈希值。仅此

而已;)

特别是,鉴于哈希值不是唯一的 - 以及如何将它们Int有限的范围内给出?- 我们不能安全地假设具有相同哈希值的两个实例将平等地比较。

最新更新