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