Clojure 中的 send

首页 / Clojure入门教程 / Clojure 中的 send

在某些情况下,为代理分配了实际上是阻止的函数。一个简单的示例是,考虑您正在从本质上是阻塞的文件中读取内容。

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正确设置了代理的值,便会更新代理的值,我们便可以看到代理的新值。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

从0开始学游戏开发 -〔蔡能〕

Web协议详解与抓包实战 -〔陶辉〕

摄影入门课 -〔小麥〕

大厂晋升指南 -〔李运华〕

基于人因的用户体验设计课 -〔刘石〕

操作系统实战45讲 -〔彭东〕

徐昊 · TDD项目实战70讲 -〔徐昊〕

大型Android系统重构实战 -〔黄俊彬〕

超级访谈:对话道哥 -〔吴翰清(道哥)〕

好记忆不如烂笔头。留下您的足迹吧 :)