Clojure - Commute
Commute 也用于更改引用类型的值,就像 alter 和 ref-set 一样。 唯一的区别是,这也需要放置在"dosync"块内。 但是,只要不需要知道哪个调用进程实际更改了引用类型的值,就可以使用此方法。 Commute 还使用一个函数来更改引用变量的值。
语法
语法如下。
(commute refname fun)
参数 − 'refname'是保存参考值的变量的名称。 'fun'是用来改变引用类型值的函数。
返回值 − 参考及其相应的新值。
示例
以下程序显示了如何使用它的示例。
(ns clojure.examples.example (:gen-class)) (defn Example [] (def counter (ref 0)) (defn change [counter] (dosync (commute counter inc))) (change counter) (println @counter) (change counter) (println @counter)) (Example)
输出
上面的程序产生以下输出。
1 2
❮ clojure_reference_values.html