我试图在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有用的资源吗?