我的代码中有许多原子,其中一个常见的要求是将它们更新为新值,而不管当前值如何。
因此我发现自己写的是这样的:
(swap! atom-name (fn [_] (identity new-value)))
这有效,但看起来很丑陋,可能会导致构建匿名闭包的性能损失。
有更好的方法吗?
答案 0 :(得分:8)
reset!
函数应该这样做。
(reset! atom-name new-value)
答案 1 :(得分:1)
您可以使用(比较并设置原子旧值新值)。
但我发现很奇怪你需要将它们改为不相关的值。你不能使用绑定或类似的东西。