Erlang 编程/快速技巧
外观
在刚开始学习或尝试进行快速原型设计时,一个可能减慢你的速度的事情是始终导出函数。相反,你可以使用编译器指令。这使得 Erlang 编程更令人愉快,无需手动输入
export(function_not_an_other_one/4).
每次添加函数并想要测试它时。相反,你可以使用
compile(export_all).
完成程序后,可以手动导出所需的元素。
另一个方便的技巧是使用
42> make:all([load]).
而不是一直编译最新版本。
43> c(my_module_v17).
还是
44> c(my_module_v18).
?Module 代码中的代码提供当前模块名称,这在生成时非常有用。
spawn(?Module, fun_name, arity),
否则,每次更改模块名称时,都需要在每次生成时更改模块名称。如果你想关注一个进程,你可以在注册后监控它。
45> register(my_loop, spawn(my_module, my_loop, [])). 46> Mon_my_loop = erlang:monitor(process, my_loop).
一个有用的实用程序函数是 rpc。
rpc(Dest, Msg) -> To ! {self(), Msg}, receive {Dest, Answer} -> Answer after 1000 -> {Dest, did_not_answer_msg, Msg} end.
这有助于保持进程之间的同步命令,避免从错误的进程获取答案。我们强制识别提供答案的进程,顺序排队应该处理剩下的部分。