У меня есть много атомов в моем коде, где общее требование состоит в том, чтобы обновить их к новому значению, независимо от текущего значения.
Я поэтому пишу что-то вроде этого:
(swap! atom-name (fn [_] (identity new-value)))
Это работает, но кажется довольно ужасным и по-видимому подвергается потере производительности для построения анонимного закрытия.
Существует ли лучший путь?
Сброс ! Это должна делать функция
.
(reset! atom-name new-value)
Вы можете использовать (compare-and-set atom old-value new-value).
Но мне кажется странным, что вам нужно так часто менять их на некоррелированные значения. Разве вы не можете использовать привязки или подобные вещи.