相关疑难解决方法(0)

在单个交换语句中更新Clojure原子的多个元素?

我有一个原子,它有两个部分.

(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(追加)嵌套映射?)

如何在单个交换语句中执行这些操作?(假设这会阻止他们脱离同步?)

clojure

8
推荐指数
1
解决办法
3388
查看次数

使用swap到MERGE(追加)Clojure原子中的嵌套映射?

假设我有一个包含这样的地图的原子:

{:count 0 :map hash-map}
Run Code Online (Sandbox Code Playgroud)

如何使用swap将另一个键值对合并到:map

clojure

7
推荐指数
1
解决办法
1063
查看次数

标签 统计

clojure ×2