Spec-Zone.ru › Dart 2

dart:core

Свойство hashCode

int hashCode
override

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

Хеш-код — это целое число, представляющее состояние объекта, влияющее на сравнения с помощью 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.19.6/dart-core/bool/hashCode.html

Spec-Zone.ru

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