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

How to merge two hashmaps on Clojure?

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

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

ClassCastException java.util.HashMap cannot be cast to clojure.lang.IPersistentCollection

嗯,显然是因为 java.util.HashMap 不是 clojure 映射。您可能会 map1map2(或两者)执行一些 java 代码?

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

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

这应该有效。

还读了这一篇:Clojure: working with a java.util.HashMap in an idomatic Clojure fashion