hashCode 属性
继承
该对象的哈希码。
哈希码是一个表示对象状态的整数,该状态影响 运算符 == 比较。
所有对象都有哈希码。由 Object 实现的默认哈希码仅代表对象的标识,就像默认的 运算符 == 实现仅认为相同的对象是相等的(见 identityHashCode)。
如果 运算符 == 被重写以使用对象状态,则哈希码也必须更改以表示该状态,否则对象不能用于像默认的 Set 和 Map 实现这样的基于哈希的数据结构。
对于根据 运算符 == 相等的对象,它们的哈希码必须相同。对象的哈希码只有在对象以影响相等性的方式更改时才应更改。对哈希码没有其他要求。它们不需要在程序执行的各个实例之间保持一致,也不提供分布保证。
不相等的对象可以有相同的哈希码。甚至技术上允许所有实例都有相同的哈希码,但如果冲突太频繁,可能会降低像 HashSet 或 HashMap 这样的基于哈希的数据结构的效率。
实现
int get hashCode => SystemHash.hash4(
left.hashCode, top.hashCode, right.hashCode, bottom.hashCode, 0);