Sök…


Introduktion

En atom i Clojure är en variabel som kan ändras genom ditt program (namnutrymme). Eftersom de flesta datatyper i Clojure är oföränderliga (eller oföränderliga) - du kan inte ändra ett tals värde utan att omdefiniera det - är atomer viktiga i Clojure-programmering.

Definiera en atom

För att definiera en atom använder du en vanlig def , men lägger till en atom innan den, som så:

(def counter (atom 0))

Detta skapar en atom med värdet 0 . Atomer kan vara av alla slag:

(def foo (atom "Hello"))
(def bar (atom ["W" "o" "r" "l" "d"]))

Läs en atoms värde

För att läsa en atoms värde, sätt helt enkelt namnet på atomen, med en @ före den:

@counter ; => 0

Ett större exempel:

(def number (atom 3))
(println (inc @number))
;; This should output 4

Uppdatera en atoms värde

Det finns två kommandon för att ändra en atom, swap! och reset! . swap! ges kommandon och ändrar atomen baserat på dess nuvarande tillstånd. reset! ändrar atomens värde fullständigt, oavsett vad den ursprungliga atomens värde var:

(swap! counter inc) ; => 1
(reset! counter 0) ; => 0

Detta exempel matar ut de första 10 krafterna för 2 hjälp av atomer:

(def count (atom 0))

(while (< @atom 10)
  (swap! atom inc)
  (println (Math/pow 2 @atom)))


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow