Ricerca…


introduzione

Un atomo in Clojure è una variabile che può essere cambiata nel tuo programma (spazio dei nomi). Poiché la maggior parte dei tipi di dati in Clojure sono immutabili (o immutabili) - non è possibile modificare il valore di un numero senza ridefinirlo - gli atomi sono essenziali nella programmazione Clojure.

Definisci un atomo

Per definire un atomo, usa un def ordinario, ma aggiungi una funzione atom prima di esso, in questo modo:

(def counter (atom 0))

Questo crea un atom di valore 0 . Gli atomi possono essere di qualsiasi tipo:

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

Leggi il valore di un atomo

Per leggere il valore di un atomo, basta mettere il nome dell'atomo, con un @ prima di esso:

@counter ; => 0

Un esempio più grande:

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

Aggiorna il valore di un atomo

Ci sono due comandi per cambiare un atomo, swap! e reset! . swap! viene dato comandi e cambia l'atomo in base al suo stato corrente. reset! cambia completamente il valore dell'atomo, indipendentemente da quale fosse il valore dell'atomo originale:

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

Questo esempio emette le prime 10 potenze di 2 usando gli atomi:

(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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow