свойство hashCode
Хеш-код этого объекта.
Хеш-код — это целое число, представляющее состояние объекта, которое влияет на сравнения с помощью оператора ==.
У всех объектов есть хеш-коды. Хеш-код по умолчанию, реализованный в Object, представляет только идентичность объекта; аналогично, реализация оператора == по умолчанию считает объекты равными, только если они идентичны (см. identityHashCode).
Если оператор == переопределён так, чтобы учитывать состояние объекта, необходимо также изменить хеш-код, чтобы он представлял это состояние. В противном случае объект нельзя будет использовать в структурах данных на основе хеширования, таких как реализации Set и Map по умолчанию.
Хеш-коды объектов, равных друг другу согласно оператору ==, должны совпадать. Хеш-код объекта должен меняться только в том случае, если объект изменяется таким образом, который влияет на равенство. Других требований к хеш-кодам нет. Они не обязаны быть одинаковыми при разных запусках одной и той же программы, а также для них не гарантируется какое-либо распределение.
Неравные объекты могут иметь одинаковый хеш-код. Технически допустимо даже, чтобы все экземпляры имели один и тот же хеш-код, но если коллизии возникают слишком часто, это может снизить эффективность структур данных на основе хеширования, таких как HashSet или HashMap.
Если подкласс переопределяет hashCode, ему также следует переопределить оператор ==, чтобы обеспечить согласованность.
Реализация
int get hashCode => Object.hash(left, top, width, height);
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-html/DomRectReadOnly/hashCode.html