当且仅当原子的当前值与原子保持的旧值相同时,才以原子方式将原子的值设置为新值,如果发生设置,则返回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
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)