Clojure dosync
2018-12-28 14:43 更新
在包含表达式和任何嵌套调用的事务中运行表达式(在隐式do中)。 如果此线程上没有运行,则启动事务。 任何未捕获的异常将中止事务并流出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 "John") (change "Mark") (println @names)) (Example)
输出
以上示例输出以下结果:
[John Mark]
以上内容是否对您有帮助:
更多建议: