如何从elixir中的地图创建`hash`或`md5`?
我需要将 a 转换map为 a hash/md5。
map1 = %{k1: "val1", k2: "val2"}
map2 = %{k2: "val2", k1: "val1"}
以上两个地图都相同,因为地图中的顺序无关紧要。如何从地图创建散列,以便它们的散列也相同?
我需要这样做以用于缓存目的。
回答
使用phash2/1orphash2/2函数,我们可以散列任何 elixir/erlang 术语:
:erlang.phash2(map1) == :erlang.phash2(map2) # true