identityHashCode 函数
- Object? object
对象 object
的标识哈希码。
返回此对象上原始 Object.hashCode 会返回的值,即使 hashCode
已被覆盖。
此哈希码与 identical 兼容,这意味着它保证在程序执行期间,对于任何 非记录 对象,每次传递相同的参数都会得到相同的结果。
记录的标识哈希码是未定义的,因为记录没有保证的持久身份。记录值和标识哈希码可以随时更改。
var identitySet = HashSet(equals: identical, hashCode: identityHashCode);
var dt1 = DateTime.now();
var dt2 = DateTime.fromMicrosecondsSinceEpoch(dt1.microsecondsSinceEpoch);
assert(dt1 == dt2);
identitySet.add(dt1);
print(identitySet.contains(dt1)); // true
print(identitySet.contains(dt2)); // false
实现
@pragma("vm:entry-point")
external int identityHashCode(Object? object);