【发布时间】:2015-11-07 21:17:03
【问题描述】:
我已经开始使用 Clojure Spectre 库 (https://github.com/nathanmarz/specter)。我遇到的问题是使用转换或 setval 删除密钥。我可以将它设置为 nil,但是如何删除密钥?
【问题讨论】:
标签: clojure clojurescript specter
我已经开始使用 Clojure Spectre 库 (https://github.com/nathanmarz/specter)。我遇到的问题是使用转换或 setval 删除密钥。我可以将它设置为 nil,但是如何删除密钥?
【问题讨论】:
标签: clojure clojurescript specter
(setval :a NONE {:a 10 :b 20})
=> {:b 20}
【讨论】:
这似乎有效:
(transform [ALL] #(when (not= (key %) :a) %) {:a 1 :b 2})
=> {:b 2}
【讨论】:
ClassCastException clojure.lang.PersistentVector cannot be cast to java.util.Map$Entry clojure.core/key (core.clj:1559)。
ClassCastException。
根据这个reddit thread,你不能用幽灵dissoc(你可以过滤),但你可以用instar。
编辑:这现在是可能的。
【讨论】: