hash - 如何从 elixir 中的 map 创建 `hash` 或 `md5`?

我需要将 map 转换为 hash/md5

map1 = %{k1: "val1", k2: "val2"}
map2 = %{k2: "val2", k1: "val1"}

上面两个 map 相同,因为 map 中的顺序无关紧要。 如何从 map 创建散列,以便它们的散列也相同?

出于缓存目的,我需要这样做。

最佳答案

phash2/1phash2/2函数,我们可以散列任何 elixir/erlang 术语:

:erlang.phash2(map1) == :erlang.phash2(map2) # true

关于hash - 如何从 elixir 中的 map 创建 `hash` 或 `md5`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65568086/

相关文章:

r - 无法为 R 中的列表替换 NA 的拼写错误

java - 更正应包含单个兼容版本的应用程序的类路径

javascript - 如果 "any"不能在 Nest.js 中使用,模式中的字段类型应该是什么

scala - 基于Map从List[String]转换为List[Int]

c - STM32创建RAM段

c# - 有没有办法在 Switch 表达式中跳过或继续,或者每个分支都需要返回一些东西?

java - 在 Clojure 中使用 JSoup 解析字符串

c++ - 找不到 Glog(缺少 : GLOG_INCLUDE_DIR GLOG_LIBRARY)

reactjs - firebase safari 错误消息 : This browser does

python - numpy 中的 3d 矩阵乘法