Clojure await-for

2018-12-27 15:57 更新

由于代理的值被更新時存在延遲,因此Clojure提供了一個“await-for”函數(shù),用于指定等待代理更新的時間(以毫秒為單位)。

語法

以下是 await-for 基本語法:

(await-for time agentname)

參數(shù) ? 'agentname'是'await-for'函數(shù)應(yīng)該設(shè)置為的代理。 'time'是等待的時間(以毫秒為單位)。

返回值 ? 如果由于超時返回,返回邏輯假,否則返回邏輯true。

下面的程序顯示了如何使用 await-for 的示例。

(ns clojure.examples.example
   (:gen-class))
(defn Example []
   (def counter (agent 0))
   (println @counter)
   
   (send-off counter + 100)
   (println (await-for 100 counter))
   (println @counter)
   
   (shutdown-agents))
(Example)

輸出

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

0
true
100

從上面的程序可以看到,代理的值立即打印到屏幕上,因為'await-for'函數(shù)包含了一個延遲,這允許Clojure更新代理的值。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號