Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
当我阅读 Advanced Swift 一书和“可哈希需求”一章时,我对这个解释感到困惑
两个相等的实例(由您的 == 实现定义)必须具有相同的哈希值。反之则不然:具有相同哈希值的两个实例不一定比较相等。
我如何理解“反向”情况,或者为什么具有相同哈希值的两个实例不一定比较相等。
将哈希值视为给定对象实例的快速、紧凑、非唯一标识符。唯一的硬条件是:如果两个对象比较相等,根据==运算符,两个实例必须具有完全相同的哈希值。这里的所有都是它的 ;)
==
特别是,考虑到哈希值不是唯一的——如何给它们Int有限的范围?— 我们不能安全地假设具有相同哈希值的两个实例将进行同等比较。
Int