Clojure dosync

2018-12-28 14:43 更新

在包含表達(dá)式和任何嵌套調(diào)用的事務(wù)中運行表達(dá)式(在隱式do中)。 如果此線程上沒有運行,則啟動事務(wù)。 任何未捕獲的異常將中止事務(wù)并流出dosync。

語法

以下是 dosync 基本使用語法:

(dosync expression)

參數(shù) ? 'expression'是一組表達(dá)式,它們將在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)

輸出

以上示例輸出以下結(jié)果:

[John Mark]
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號