当前位置: 首页 > 文档资料 > Clojure 中文教程 >

dosync

优质
小牛编辑
128浏览
2023-12-01

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

语法 (Syntax)

以下是语法。

(dosync expression)

Parameters - 'expression'是表达式的集合,它将出现在dosync块中。

Return Value - 无。

例子 (Example)

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

(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)

输出 (Output)

上述程序产生以下输出。

[John Mark]