无涯教程-Clojure - dosync函数

40 阅读1分钟

在包含表达式和任何嵌套调用的事务中运行表达式,如果没有任何线程在该线程上运行,则启动事务,任何未捕获的异常都将中止事务,并退出dosync。

dosync - 语法

(dosync expression)

参数      -  "expression"是一组表达式,将出现在dosync块中。

返回值  - 无。

dosync - 示例

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

(ns clojure.examples.example
   (:gen-class))
(defn Example []
   (def names (ref []))

(defn change [newname] (dosync (alter names conj newname))) (change "Leanfk") (change "Toolfk") (println @names)) (Example)

上面的程序产生以下输出。

[Learnfk Toolfk]

参考链接

www.learnfk.com/clojure/clo…