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]
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号