Clojure-atoms-compare-and-set

提供:Dev Guides
2020年6月22日 (月) 22:42時点におけるMaintenance script (トーク | 投稿記録)による版 (Imported from text file)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索

Clojure-原子の比較と設定!

アトムの現在の値がアトムによって保持されている古い値と同一である場合にのみ、アトムの値を新しい値に原子的に設定します。 設定された場合は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