Clojure - Atoms compare-and-set!
当且仅当原子的当前值与原子持有的旧值相同时,才以原子方式将原子的值设置为新值。 如果设置发生则返回 true,否则返回 false。
语法
语法如下。
(compare-and-set! atom-name oldvalue newvalue)
参数 − 'atom-name'是需要重置值的原子的名称。 'oldvalue'是原子当前的旧值。 'newvalue'是需要分配给原子的新值。
返回值 − 仅当正确指定旧值时,才会设置具有新值的原子。
示例
以下程序显示了如何使用它的示例。
(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)
输出
上面的程序将产生以下输出。
1 1 3