Size: a a a

Clojure — русскоговорящее сообщество

2020 January 14

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Alex Zveryansky
https://clojuredocs.org/clojure.core/hash
а в кложур принято полагаться на то, что эта функция независимо от запуска возвращает одинаковые значения для одинаковых аргументов? что-то не гуглится
в жвм нет никаких гарантий по поводу стабильности hashCode
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
(hash) использует .hashCode
источник

AZ

Alex Zveryansky in Clojure — русскоговорящее сообщество
Andrew Rudenko
в жвм нет никаких гарантий по поводу стабильности hashCode
спасибо
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
есть вот такие штуки например https://github.com/arachne-framework/valuehash
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
которые дадут тебе стабильный хэш клж объектов
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
с сохранением семантики = для вещей типа мапов и сетов
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Andrew Rudenko
(hash) использует .hashCode
нет
даже в документации такие примеры
user=> (hash "a")
1455541201
user=> (.hashCode "a")  ; notice that this is different than (hash "a")
97
user=> (hash 1)
1392991556
user=> (.hashCode 1)    ; notice that this is different than (hash 1)
1
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Sergey Trofimov
нет
даже в документации такие примеры
user=> (hash "a")
1455541201
user=> (.hashCode "a")  ; notice that this is different than (hash "a")
97
user=> (hash 1)
1392991556
user=> (.hashCode 1)    ; notice that this is different than (hash 1)
1
да. я не сказал =, я сказал "использует"
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Andrew Rudenko
(hash) использует .hashCode
и что нам это даёт?
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Andrew Rudenko
в жвм нет никаких гарантий по поводу стабильности hashCode
.
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
> This integer need not remain consistent from one execution of an application to another execution of the same application.
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
т.е. это дает нам ровно ответ на поставленный вопрос
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Я использовал hash для etag
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
И все было зашибись. Потому что я использовал кложные структуры данных
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
ну для etag это не смертельно, но тоже не стоит
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
а почему
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
если для кложных структур хэш и = совпадают
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
как я понимаю, для чисел и строк hash всегда даёт одно и то же значение
источник