Clojure send

2018-12-27 14:57 更新

此函数用于向代理发送一个值。

语法

以下是 send 基本语法:

(send agentname function value)

参数 − 'agentname'是发送功能被重定向到的代理。 “函数”用于确定代理的值将更改的方式。 在我们的示例中,我们将使用加号+符号向代理的现有值中添加一个值。 'Value'是传递给函数的值,它将相应地用于更新代理的值。

返回值 − 返回具有新值的代理对象。

下面的程序显示了如何使用 send 的示例。

(ns clojure.examples.example
   (:gen-class))
(defn Example []
   (def counter (agent 0))
   (println @counter)
   
   (send counter + 100)
   (println "Incrementing Counter")
   (println @counter))
(Example)

输出

以上示例输出以下结果:

0
Incrementing Counter
0

请注意以下几点:

  • 由于发送函数是异步函数,因此当代理的值被更新时存在时间延迟。 这就是为什么我们为程序添加了一个额外的'println'语句。 这是为了给Clojure环境相应地更新代理值所需的时间。

  • 其次,当你运行上面的程序,程序不会立即终止。 这是因为Clojure环境不知道关闭代理是否安全。 我们将在下一个功能描述中看到如何关闭代理。

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

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号