Clojure await-for

2018-12-27 15:57 更新

由于代理的值被更新时存在延迟,因此Clojure提供了一个“await-for”函数,用于指定等待代理更新的时间(以毫秒为单位)。

语法

以下是 await-for 基本语法:

(await-for time agentname)

参数 − 'agentname'是'await-for'函数应该设置为的代理。 '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)

输出

以上示例输出以下结果:

0
true
100

从上面的程序可以看到,代理的值立即打印到屏幕上,因为'await-for'函数包含了一个延迟,这允许Clojure更新代理的值。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号