(def tables
(atom
{:tableA {:occupied false :party nil}
:tableB {:occupied true :party nil}
:tableC {:occupied false :party nil}}))
我正在尝试将其中一张表的 ":occupied" 状态更新为 true。这对我有用:
(assoc-in tables [:tableC :occupied] true)
但是我无法使用“交换!”让它工作。这是我正在尝试做的事情:
(swap! tables assoc-in [:tableC :occupied] true)
这给了我一个错误:
ClassCastException clojure.lang.PersistentHashMap 无法转换为 clojure.lang.Atom clojure.core/swap!(core.clj:2162)
我在这里做错了什么?