Spec-Zone.ru › Dart 1

dart:core

Свойство hashCode

int hashCode

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

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

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

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

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

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

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

Исходный код

external int get 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-core/Object/hashCode.html

Spec-Zone.ru

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