Свойство hashCode
int hashCodeХэш-код для этого объекта.
Хэш-код — это целое число, представляющее состояние объекта, которое влияет на == сравнения.
Все объекты имеют хэш-коды. По умолчанию хэш-код представляет только идентичность объекта, так же, как и по умолчанию == реализация рассматривает объекты равными только в случае их тождества (см. identityHashCode).
Если == переопределяется для использования состояния объекта вместо этого, хэш-код также должен быть изменён для отражения этого состояния.
Хэш-коды должны быть одинаковыми для объектов, которые равны друг другу согласно ==. Хэш-код объекта должен меняться только в том случае, если объект изменяется таким образом, что это влияет на равенство. Нет дополнительных требований к хэш-кодам. Они не должны быть согласованными между выполнениями одной и той же программы, и нет никаких гарантий распределения.
Объекты, которые не равны, могут иметь одинаковый хэш-код, технически даже разрешено, чтобы все экземпляры имели одинаковый хэш-код, но если столкновения происходят слишком часто, это может снизить эффективность хэш-базированных структур данных, таких как HashSet или HashMap.
Если подкласс переопределяет hashCode, он также должен переопределить оператор == для поддержания согласованности.
Исходный код
int get hashCode => _JenkinsSmiHash.hash4(
left.hashCode, top.hashCode, right.hashCode, bottom.hashCode);
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-html/CssRect/hashCode.html