Clojure Atoms compare-and-set!

2018-12-24 11:27 更新

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

语法

以下是compare-and-set!基本语法:

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

参数 − 'atom-name'是其值需要重置的Atoms的名称。 'oldvalue'是Atoms的当前旧值。 'newvalue'是需要分配给Atoms的新值。

返回值 − 只有在正确指定旧值的情况下,才会设置具有新值的Atoms。

下面的程序是如何使用compare-and-set!的示例。

(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
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号