我有一个原子,它有两个部分.
(def thing (atom {:queue '() :map {}}))
Run Code Online (Sandbox Code Playgroud)
我想更新:queue和:map在一个原子笔划中,以防止它们脱离同步.
(swap! thing update-in [:queue] (list 1))
Run Code Online (Sandbox Code Playgroud)
(从这个问题:如何附加到Clojure原子中的嵌套列表?)
(swap! thing assoc-in [:map 1] (:key :value))
Run Code Online (Sandbox Code Playgroud)
(从这个问题:在Clojure原子中使用swap到MERGE(追加)嵌套映射?)
如何在单个交换语句中执行这些操作?(假设这会阻止他们脱离同步?)
假设我有一个包含这样的地图的原子:
{:count 0 :map hash-map}
Run Code Online (Sandbox Code Playgroud)
如何使用swap将另一个键值对合并到:map?
clojure ×2