Фэндом

Smalltalk по-русски

Хэш

239статей на
этой вики
Добавить новую страницу
Обсуждение0 Поделиться

Хэш, хэш-сумма, хэш-функция — некоторая функция объекта, применяемая для сравнения, проверки целостности или неизменности объекта.

В рамках Смолтока хэш — целое неотрицательное число, являющееся функцией состояния объекта.

Есть два вида хэша: хэш равенства и хэш тождества. Разница между ними определяется требованиями.

  • Если объекты равны (= b = true), то их хэши равенства тоже должны быть равны.
    То есть
    = b -> hash = hash
  • Если объекты тождественны (== b = true), то должны быть равны их хэши тождества.
    То есть
    == b -> identityHash = identityHash

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

Вообще говоря, хэш может возвращать всегда одно и то же число, но в этом случае сильно замедлится работа программ, активно их использующих (а это в первую очередь — работа с коллекциями).

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Также на Фэндоме

Случайная вики