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)))


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow