Clojure 中的 send

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

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

send-off - 语法

(send agentname function value)

参数      -  " agentname"是将发送函数重定向到的代理, "function"用于确定更改代理价值的方式, "value"是传递给该函数的值,该值又将用于相应地更新代理的值。

返回值  -  如果存在非阻塞函数,则首先按原样返回代理,最后,返回具有新值的代理对象 。

send-off - 示例

以下程序显示了有关如何使用它的示例。

链接:https://www.learnfk.comhttps://www.learnfk.com/clojure/clojure-sendoff.html

来源:LearnFk无涯教程网

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

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

技术教程推荐

DevOps实战笔记 -〔石雪峰〕

.NET Core开发实战 -〔肖伟宇〕

架构实战案例解析 -〔王庆友〕

分布式系统案例课 -〔杨波〕

Go 并发编程实战课 -〔晁岳攀(鸟窝)〕

物联网开发实战 -〔郭朝斌〕

实用密码学 -〔范学雷〕

Kubernetes入门实战课 -〔罗剑锋〕

结构思考力 · 透过结构看表达 -〔李忠秋〕

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