我試圖在opa中實現回調,所以當變量在服務器端得到更新時,客戶端立即獲得更新的值。在opa中實現回調
我知道我可以利用網絡做:
Network.add_callback(update_function, room)
然而,作爲一個學習鍛鍊,我想實現一個功能我自己。
我的第一個想法是創建一個void->void
函數列表list(void->void)
,這是我遇到我缺乏可變狀態和變量的第一個問題。所以我不能將任何回調函數添加到創建的列表中。
這引出我的第一個問題:我如何在沒有可變狀態的情況下工作?我不認爲自己新的函數式編程,但通常我只想重新分配一個變量
即
x = ['a','b','c']
function addVal(val){
x = List.add(val,x)
}
但是,這似乎並沒有在OPA法律。
如何在沒有變量或可變數據結構的情況下工作?我沒有看到任何動態內容如何在沒有可變狀態的情況下實現。
我決定嘗試通過存儲在數據庫中我的回調函數列表來解決這個問題:
database callbacks{
list(void -> void) functions
}
,但我得到的錯誤
Elements of type void -> void cannot be stored in the database
這使我對我的第二個問題:
有沒有比doc.opalang.org更好的opa可用資源?我一直無法找到有關數據庫允許的類型的任何信息。
因此,在總結:
- 如何建立一個程序,其實做任何事情,而無需使用可變狀態或變量?
- opa數據庫允許哪些類型?
- 除了doc.opalang.org之外,還有其他opa有用的資源嗎?