Spec-Zone.ru › Dart 1

dart:math

Свойство hashCode

int hashCode

Хеш-код этого объекта.

Хеш-код — это целое число, которое представляет состояние объекта, влияющее на == сравнения.

Все объекты имеют хеш-коды. По умолчанию хеш-код представляет только идентичность объекта, так же, как и стандартная == реализация считает объекты равными только если они идентичны (см. identityHashCode).

Если == переопределяется для использования состояния объекта вместо этого, хеш-код также должен быть изменён, чтобы отразить это состояние.

Хеш-коды должны быть одинаковыми для объектов, которые равны друг другу согласно ==. Хеш-код объекта должен меняться только в том случае, если объект изменяется таким образом, что это влияет на равенство. Нет дополнительных требований к хеш-кодам. Они не должны быть согласованными между запусками одной и той же программы, и нет гарантий распределения.

Объекты, которые не равны, могут иметь одинаковый хеш-код, технически даже все экземпляры могут иметь одинаковый хеш-код, но если такие совпадения происходят слишком часто, это может снизить эффективность основанных на хешировании структур данных, таких как HashSet или HashMap.

Если подкласс переопределяет hashCode, он также должен переопределить оператор == для сохранения согласованности.

Исходный код

int get hashCode => _JenkinsSmiHash.hash2(x.hashCode, y.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-math/Point/hashCode.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API