如何在 Clojure 上合并两个哈希图?

zha*_*_kz 4 clojure clojure-java-interop

如何合并两个 hashmap 变量,例如map1map2

我试过了(merge map1 map2),但出现以下异常:

ClassCastException java.util.HashMap 不能转换为 clojure.lang.IPersistentCollection

lee*_*ski 5

好吧,显然是因为java.util.HashMap不是clojure地图。您可能会map1map2(或两者)执行一些 Java 代码?

所以在这种情况下,您应该首先将它们转换为这样的 clojure 映射,例如:

(merge (into {} map1) (into {} map2))

这应该有效。

另请阅读:Clojure:以惯用的 Clojure 方式使用 java.util.HashMap