W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
此函數(shù)用于向代理發(fā)送一個值。
以下是 send 基本語法:
(send agentname function value)
參數(shù) ? 'agentname'是發(fā)送功能被重定向到的代理。 “函數(shù)”用于確定代理的值將更改的方式。 在我們的示例中,我們將使用加號+符號向代理的現(xiàn)有值中添加一個值。 'Value'是傳遞給函數(shù)的值,它將相應(yīng)地用于更新代理的值。
返回值 ? 返回具有新值的代理對象。
下面的程序顯示了如何使用 send 的示例。
(ns clojure.examples.example (:gen-class)) (defn Example [] (def counter (agent 0)) (println @counter) (send counter + 100) (println "Incrementing Counter") (println @counter)) (Example)
以上示例輸出以下結(jié)果:
0 Incrementing Counter 0
請注意以下幾點:
由于發(fā)送函數(shù)是異步函數(shù),因此當(dāng)代理的值被更新時存在時間延遲。 這就是為什么我們?yōu)槌绦蛱砑恿艘粋€額外的'println'語句。 這是為了給Clojure環(huán)境相應(yīng)地更新代理值所需的時間。
其次,當(dāng)你運行上面的程序,程序不會立即終止。 這是因為Clojure環(huán)境不知道關(guān)閉代理是否安全。 我們將在下一個功能描述中看到如何關(guān)閉代理。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: