identityHashCode 函数
- Object? object
对象 object
的唯一哈希码。
即使 hashCode
已经被重写,也会返回原始 Object.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);