此函數(shù)用于更改引用類型的值,但以安全的方式。 這是在一個(gè)線程中運(yùn)行的,它不能被另一個(gè)進(jìn)程訪問。 這就是為什么命令需要與一個(gè)'dosync'方法總是相關(guān)聯(lián)。 其次,要更改引用類型的值,需要調(diào)用函數(shù)以對該值進(jìn)行必要的更改。
下面是 alter 的使基本語法:
(alter refname fun)
參數(shù) ? 'refname'是保存引用值的變量的名稱。 'fun'是用于更改引用類型的值的函數(shù)。
返回值 ? 引用及其對應(yīng)的新值。
下面是 alter 的使用示例:
(ns clojure.examples.example (:gen-class)) (defn Example [] (def names (ref [])) (defn change [newname] (dosync (alter names conj newname))) (change "John") (change "Mark") (println @names)) (Example)
以上示例將輸出以下結(jié)果:
[John Mark]
更多建議: