1
(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)

我在这里做错了什么?

4

0 回答 0