Commute也用于改變引用類型的值,就像alter和ref-set一樣。 唯一的區(qū)別是,這也需要放在一個“dosync”塊中。 然而,這可以在無需知道哪個調用進程實際改變了引用類型的值時使用。 Commute還使用一個函數(shù)來更改引用變量的值。
以下是 commute 基本使用語法:
(commute refname fun)
參數(shù) ? 'refname'是保存引用值的變量的名稱。 'fun'是用于更改引用類型的值的函數(shù)。
返回值 ? 引用及其對應的新值。
下面是一個 commute 使用的例子。
(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
更多建議: