Clojure - 原子 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
clojure_atoms.htm
廣告
© . All rights reserved.