hashCode 属性
覆盖
此对象的哈希码。
哈希码是一个整数,代表影响对象比较运算符(operator ==)的对象状态。
所有对象都有哈希码。Object 类实现的默认哈希码仅代表对象的标识,与默认 operator == 实现只考虑对象相同(如果它们完全相同,则视为相等)的方式相同(参见 identityHashCode)。
如果 operator == 被覆盖以使用对象状态,则也必须更改哈希码来表示该状态,否则对象不能用于像默认的 Set 和 Map 实现一样的基于哈希的数据结构。
对象的哈希码根据 operator == 相等时必须相同。对象哈希码应该只在其影响相等的方面改变。对于哈希码没有其他要求。它们不需要在程序的不同执行之间保持一致性,并且没有分布保证。
不等的对象可以允许有相同的哈希码。技术上甚至允许所有实例都有相同的哈希码,但如果冲突发生得太频繁,这可能会降低像 HashSet 或 HashMap 这样的基于哈希的数据结构的效率。
如果子类覆盖 hashCode,则它也应该覆盖 operator == 运算符以保持一致性。
实现
int get hashCode => Object.hash(left, top, right, bottom);