На языке джулии (версия 1.1.0) я экспериментирую, что произойдет, когда я изменю ключ словаря.
Перед мутацией распознается как переменная x
, так и [1,2,3]
.
x = [1,2,3]; d = Dict(x=>"x")
haskey(d, x)
# true
haskey(d, [1,2,3])
# true
После того, как я мутировал x
, ни переменная x
, ни [1,2,3,4]
не распознаются.
push!(x, 4)
haskey(d, x)
# false
haskey(d, [1,2,3,4])
# false
haskey(d, [1,2,3])
# false
По значению ключ "равен" x
, так что я думаю, это как-то связано с хэш-функцией, но я не смог понять исходный код .
collect(keys(d))[1] == x == [1,2,3,4]
# true
Может кто-нибудь объяснить, что вызывает такое поведение, или предложить ресурсы, которые ястоит посмотреть?