当我将 let subcate = ["brand_id": brandid!] as [String:Any]
和doseq
映射应用于transient
时,我始终只能获得8个条目。
如何获取所有条目?
java.util.HashMap
答案 0 :(得分:2)
问题是,当ArrayMap的8元素阈值超过时,将创建一个新的HashMap-将is returned作为assoc!
的返回值,并将其丢弃在代码中。
您应该在assoc!
中的use the return value中使用瞬态结构,而不是在assoc!
之后使用相同的对象引用:
(persistent! (reduce (fn [acc [k v]]
(assoc! acc k v))
(transient {}) tmp-hash))