Spec-Zone.ru › Dart 2

dart:math

Свойство hashCode

int hashCode
inherited

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

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

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

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

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

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

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

Реализация

int get hashCode => SystemHash.hash4(
    left.hashCode, top.hashCode, right.hashCode, bottom.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-math/Rectangle/hashCode.html

Spec-Zone.ru

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