Clojure - 原子交换(swap!)



以原子方式将原子的值与基于特定函数的新值交换。

语法

以下是语法。

(swap! atom-name function)

参数 - ‘atom-name’ 是需要重置其值的原子的名称。‘function’ 是用于生成原子新值的函数。

返回值 - 基于提供的函数,将设置具有新值的原子。

示例

以下程序显示了如何使用此功能的示例。

(ns clojure.examples.example
   (:gen-class))
(defn example []
   (def myatom (atom 1))
   (println @myatom)
   
   (swap! myatom inc)
   (println @myatom))
(example)

输出

以上程序产生以下输出。

1
2

从上面的程序中您可以看到,‘inc’(增量函数)用于增加原子的值,并且在 swap! 函数的帮助下,新值会自动与原子关联。

clojure_atoms.htm
广告