試劑原子
在 Clojure 和 ClojureScript 中,試劑原子與常規原子基本相同 - 它們本質上是可以改變的變數。這特別有用,因為 Clojure(Script)
的資料型別大多是不可變的 - 這意味著要更改變數的值,必須重新宣告變數。
普通原子與 Reagent 不相容,因此 Reagent 有自己的原子。它們被宣告為普通變數,除了包含值的附加函式:
(:require [reagent.core :as r])
(def num (r/atom 1))
你可以通過兩種方式獲取原子的值:
(deref num) ; => 1
@num ; => 1
要更改 atom 的值,有兩個命令 swap!
和 reset!
。
swap!
被賦予命令,根據原子本身的原始值改變原子的值reset!
被賦予一個值,並將原子的值更改為給定的值,而不管原子原來是什麼
(swap! num inc) ; => (inc num) => num = 2
(reset! num 5) ; => num = 5