Да, если вы используете встроенные HashFunction
s, они являются чистой функцией - см. Страницу документации для HashFunction
:
Хеш-функция - это предотвращающая столкновение чистая функция , которая отображает
произвольный блок данных для числа, называемого хеш-кодом.
Распаковка этого определения:
- (...)
- pure function: создаваемое значение должно зависеть только от входных байтов в порядке их появления. Входные данные никогда не изменяются.
HashFunction
экземпляры всегда должны быть без состояний, и поэтому
потокобезопасный .
Имейте в виду, что, поскольку HashFunction
является интерфейсом, вы можете создать реализацию с сохранением состояния и не ориентированную на многопотоковую реализацию, но это нарушит контракт.