当前位置: 首页 > 文档资料 > Clojure 中文教程 >

compare-and-set!

优质
小牛编辑
131浏览
2023-12-01

当且仅当原子的当前值与原子持有的旧值相同时,原子上将atom的值设置为新值。 如果set发生则返回true,否则返回false。

语法 (Syntax)

以下是语法。

(compare-and-set! atom-name oldvalue newvalue)

Parameters - 'atom-name'是需要重置其值的atom的名称。 'oldvalue'是原子的当前旧值。 'newvalue'是需要分配给atom的新值。

Return Value - 仅当正确指定旧值时,才会设置具有新值的原子。

例子 (Example)

以下程序显示了如何使用它的示例。

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

输出 (Output)

上述程序将产生以下输出。

1
1
3