Dynami c атомов в Clojure - PullRequest
3 голосов
/ 11 июля 2020

Я новичок в Clojure и немного запутался в динамике c атомов. Я думаю, что понимаю варианты использования привязки динамического c, а также атомов. Но часто я вижу такие определения

(def ^:dynamic *variable* (atom nil))

Какова будет цель динамического c атома?

1 Ответ

6 голосов
/ 12 июля 2020

Переменная Dynami c предназначена для совместного использования состояния в потоке. Атом предназначен для переменной, которая может измениться. Таким образом, переменная dynamic c, содержащая атом, полезна для состояния, которое ограничено для каждого потока и может измениться. Например, его удобно использовать для данных по запросу в обработчике HTTP. Конечно, вы можете просто использовать переменную Dynami c и set! ее несколько, поскольку вам не нужно координировать потоки. Но у нас есть лучшие функции для управления атомами, чем для варов, поэтому люди часто это делают.

...