Zoeken…
Invoering
Een atoom in Clojure is een variabele die in uw programma kan worden gewijzigd (naamruimte). Omdat de meeste gegevenstypen in Clojure onveranderlijk (of onveranderlijk) zijn - u kunt de waarde van een nummer niet wijzigen zonder het opnieuw te definiëren - zijn atomen essentieel in Clojure-programmering.
Definieer een atoom
Om een atoom te definiëren, gebruikt u een gewone def
, maar voegt u daarvoor een atom
toe:
(def counter (atom 0))
Dit creëert een atom
met waarde 0
. Atomen kunnen van elk type zijn:
(def foo (atom "Hello"))
(def bar (atom ["W" "o" "r" "l" "d"]))
Lees de waarde van een atoom
Om de waarde van een atoom te lezen, plaatst u eenvoudig de naam van het atoom, met een @
ervoor:
@counter ; => 0
Een groter voorbeeld:
(def number (atom 3))
(println (inc @number))
;; This should output 4
Werk de waarde van een atoom bij
Er zijn twee commando's om een atoom te veranderen, swap!
en reset!
. swap!
krijgt commando's en verandert het atoom op basis van zijn huidige status. reset!
verandert de waarde van het atoom volledig, ongeacht wat de oorspronkelijke atoomwaarde was:
(swap! counter inc) ; => 1
(reset! counter 0) ; => 0
Dit voorbeeld geeft de eerste 10 vermogens van 2
met behulp van atomen:
(def count (atom 0))
(while (< @atom 10)
(swap! atom inc)
(println (Math/pow 2 @atom)))