Clojure Atoms compare-and-set!

2018-12-24 11:27 更新

當(dāng)且僅當(dāng)原子的當(dāng)前值與原子保持的舊值相同時,以原子方式將atom的值設(shè)置為新值。 返回true如果設(shè)置發(fā)生,否則返回false。

語法

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

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

參數(shù) ? 'atom-name'是其值需要重置的Atoms的名稱。 'oldvalue'是Atoms的當(dāng)前舊值。 'newvalue'是需要分配給Atoms的新值。

返回值 ? 只有在正確指定舊值的情況下,才會設(shè)置具有新值的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)

輸出

以上示例輸出以下結(jié)果:

1
1
3
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號