Clojure - dosync



在包含表示式和任何巢狀呼叫的事務中執行表示式(在隱式 do 中)。如果此執行緒上尚未執行任何事務,則啟動一個事務。任何未捕獲的異常都將中止事務並從 dosync 中流出。

語法

以下是語法。

(dosync expression)

引數 - 'expression' 是表示式集,它將出現在 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]
clojure_reference_values.htm
廣告

© . All rights reserved.