Свойство hashCode
Хэш-код для этого объекта.
Хэш-код — это целое число, которое представляет состояние объекта, влияющее на сравнения с помощью оператора operator ==.
Все объекты имеют хэш-коды. По умолчанию хэш-код, реализованный в Object, представляет только идентичность объекта, точно так же, как реализация оператора operator == по умолчанию считает объекты равными только в случае их идентичности (см. identityHashCode).
Если оператор operator == переопределён для использования состояния объекта, то хэш-код также должен быть изменён для представления этого состояния, иначе объект не может использоваться в структурах данных с хэшированием, таких как реализации Set и Map по умолчанию.
Хэш-коды должны быть одинаковыми для объектов, которые равны друг другу в соответствии с operator ==. Хэш-код объекта должен изменяться только в том случае, если объект изменяется так, что это влияет на равенство. Больше требований к хэш-кодам нет. Они не должны быть согласованными между выполнениями одной и той же программы, и нет гарантий распределения.
Объекты, которые не равны, могут иметь одинаковый хэш-код. Даже технически разрешено, чтобы все экземпляры имели одинаковый хэш-код, но если коллизии происходят слишком часто, это может снизить эффективность структур данных с хэшированием, таких как HashSet или HashMap.
Если подкласс переопределяет hashCode, он также должен переопределить оператор operator == для поддержания согласованности.
Реализация
int get hashCode => Object.hash(left, top, width, height);
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-html/DomRectReadOnly/hashCode.html