Spec-Zone.ru › Dart 1

dart:html

Свойство hashCode

int hashCode

Код хэширования для этого объекта.

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

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

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

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

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

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

Исходный код

int get hashCode => _JenkinsSmiHash.hash4(
    left.hashCode, top.hashCode, width.hashCode, height.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/DomRectReadOnly/hashCode.html

Spec-Zone.ru

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