在某些情况下,为代理分配了实际上是阻止的函数。一个简单的示例是,考虑您正在从本质上是阻塞的文件中读取内容。
send-off - 语法
(send agentname function value)
参数 - " agentname"是将发送函数重定向到的代理, "function"用于确定更改代理价值的方式, "value"是传递给该函数的值,该值又将用于相应地更新代理的值。
返回值 - 如果存在非阻塞函数,则首先按原样返回代理,最后,返回具有新值的代理对象 。
send-off - 示例
以下程序显示了有关如何使用它的示例。
(ns clojure.examples.example (:gen-class)) (defn Example [] (def counter (agent 0)) (println @counter) (send-off counter + 100) (println @counter) (println @counter)) (Example)
我们正在看增加计数器值的相同示例,但是从下面的输出中,可以清楚看出发送函数的作用。
上面的程序产生以下输出。
0 0 0
可以看出,即使我们已经向代理发送了将值设置为100的函数,它也不会立即反映出来。发送函数首先按原样返回代理的值。一旦Clojure正确设置了代理的值,便会更新代理的值,我们便可以看到代理的新值。
参考链接
https://www.learnfk.com/clojure/clojure-sendoff.html
标签:off,函数,示例,counter,无涯,send,代理 From: https://blog.51cto.com/u_14033984/8078164