Clojure - dosync
在包含表达式和任何嵌套调用的事务中运行表达式(在隐式 do 中)。 如果该线程上尚未运行任何事务,则启动事务。 任何未捕获的异常都会中止事务并流出 dosync。
语法
语法如下。
(dosync expression)
参数 − '表达式'是一组表达式,它将出现在 dosync 块中。
返回值 − None。
示例
以下程序显示了如何使用它的示例。
(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)
输出
上面的程序产生以下输出。
[John Mark]
❮ clojure_reference_values.html