在包含表達(dá)式和任何嵌套調(diào)用的事務(wù)中運(yùn)行表達(dá)式(在隱式do中)。 如果此線程上沒有運(yùn)行,則啟動事務(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]
更多建議: