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