Clojure - dosync



在包含表达式和任何嵌套调用的事务中运行表达式(在隐式 do 中)。如果此线程上尚未运行任何事务,则启动一个事务。任何未捕获的异常都将中止事务并从 dosync 中流出。

语法

以下是语法。

(dosync expression)

参数 - 'expression' 是表达式集,它将出现在 dosync 块中。

返回值 - 无。

示例

以下程序显示了如何使用它。

(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.htm
广告