send
优质
小牛编辑
126浏览
2023-12-01
此函数用于将值发送到代理。
语法 (Syntax)
以下是语法。
(send agentname function value)
Parameters - 'agentname'是将send函数重定向到的代理程序。 'function'用于确定代理的值将以何种方式更改。 在我们的例子中,我们将使用加号+符号将值添加到代理的现有值。 'Value'是传递给函数的值,而后者又将用于相应地更新代理的值。
Return Value - 返回具有新值的代理对象。
例子 (Example)
以下程序显示了如何使用它的示例。
(ns clojure.examples.example
(:gen-class))
(defn Example []
(def counter (agent 0))
(println @counter)
(send counter + 100)
(println "Incrementing Counter")
(println @counter))
(Example)
输出 (Output)
上述程序产生以下输出。
0
Incrementing Counter
0
请注意以下有关上述计划的内容。
由于send函数是异步函数,因此更新代理值的时间会有延迟。 这就是为什么我们在程序中添加了额外的'println'语句。 这是为了给Clojure环境提供相应更新代理值所需的时间。
其次,当您运行上述程序时,程序不会立即终止。 这是因为Clojure环境不知道关闭代理是否安全。 我们将在下一个函数描述中看到如何关闭代理。