Suche…
Einführung
Ein Atom in Clojure ist eine Variable, die in Ihrem Programm (Namespace) geändert werden kann. Da die meisten Datentypen in Clojure unveränderlich (oder unveränderlich) sind - Sie können den Wert einer Zahl nicht ändern, ohne sie neu zu definieren - Atome sind für die Clojure-Programmierung unerlässlich.
Definiere ein Atom
Um ein Atom zu definieren, verwenden ein gewöhnliches def
, aber fügen Sie eine atom
- Funktion , bevor es, etwa so:
(def counter (atom 0))
Dadurch wird ein atom
mit dem Wert 0
. Atome können von jedem Typ sein:
(def foo (atom "Hello"))
(def bar (atom ["W" "o" "r" "l" "d"]))
Lesen Sie den Wert eines Atoms
Um den Wert eines Atoms zu lesen, geben Sie einfach den Namen des Atoms mit einem @
@counter ; => 0
Ein größeres Beispiel:
(def number (atom 3))
(println (inc @number))
;; This should output 4
Aktualisieren Sie den Wert eines Atoms
Es gibt zwei Befehle zum Wechseln eines Atoms swap!
und reset!
. swap!
erhält Befehle und ändert das Atom basierend auf seinem aktuellen Status. reset!
ändert den Atomwert vollständig, unabhängig davon, wie der ursprüngliche Atomwert war:
(swap! counter inc) ; => 1
(reset! counter 0) ; => 0
Dieses Beispiel gibt die ersten 10 Potenzen von 2
mit Atomen aus:
(def count (atom 0))
(while (< @atom 10)
(swap! atom inc)
(println (Math/pow 2 @atom)))