W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
正如多次指出的,Clojure是一種編程語言,其中許多數(shù)據(jù)類型是不可變的,這意味著唯一可以更改變量值的方法是創(chuàng)建一個新變量并為其分配新值。 但是,Clojure提供了一些元素,它們可以創(chuàng)建一個可變狀態(tài)。 我們已經(jīng)看到,這可以通過原子數(shù)據(jù)類型實現(xiàn)。 可以實現(xiàn)的另一種方式是通過代理。
代理提供單獨位置的獨立,異步更改。 代理綁定到單個存儲位置的一生,并且只允許該位置的突變(到新的狀態(tài))作為動作的結(jié)果發(fā)生。 操作是異步應(yīng)用于代理狀態(tài)并且其返回值成為代理的新狀態(tài)的函數(shù)(帶可選的附加參數(shù))。
在Clojure中有關(guān)代理的以下操作是可能的。
S.No. | 方法和說明 |
---|---|
agent | 使用agent命令創(chuàng)建代理。 |
send | 此函數(shù)用于向代理發(fā)送一個值。 |
shutdown-agents | 此功能用于關(guān)閉所有正在運行的代理。 |
send-off | 存在這樣的情況,其中給代理分配本質(zhì)上是阻塞的功能。 |
await-for | 由于代理的值被更新時存在延遲,因此Clojure提供了一個“await-for”函數(shù),用于指定等待代理更新的時間(以毫秒為單位)。 |
await | 阻塞當前線程(無限期?。?,直到從此線程或代理到目前為止所有分派到代理的動作發(fā)生。 將阻止失敗的代理。 |
agent-error | 返回在代理的異步操作期間拋出的異常(如果代理失?。?。 如果代理不失敗,則返回nil。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: