Clojure - Atomi confronta e imposta!
Atomicamente imposta il valore di atom al nuovo valore se e solo se il valore corrente dell'atomo è identico al vecchio valore detenuto dall'atomo. Restituisce vero se viene impostato, altrimenti restituisce falso.
Sintassi
Di seguito è riportata la sintassi.
(compare-and-set! atom-name oldvalue newvalue)
Parameters- 'atom-name' è il nome dell'atomo il cui valore deve essere ripristinato. "oldvalue" è il vecchio valore corrente dell'atomo. "newvalue" è il nuovo valore che deve essere assegnato all'atomo.
Return Value - L'atomo con il nuovo valore verrà impostato solo se il vecchio valore è specificato correttamente.
Esempio
Un esempio di come viene utilizzato è mostrato nel seguente programma.
(ns clojure.examples.example
(:gen-class))
(defn example []
(def myatom (atom 1))
(println @myatom)
(compare-and-set! myatom 0 3)
(println @myatom)
(compare-and-set! myatom 1 3)
(println @myatom))
(example)
Produzione
Il programma precedente produrrà il seguente output.
1
1
3