使用binary_to_existing_atom(二进制,编码)

时间:2013-04-04 10:57:29

标签: erlang

我想将一些来自套接字的二进制文件转换为稍后将在gen_server调用中使用的原子。因为我不想用新的(可能是无效的原子)来泛滥VM,所以我使用:

  

binary_to_existing_atom(Binary,Encoding)

现在,我应该在系统启动时如何声明有效原子(或更好),以便转换有效?

1 个答案:

答案 0 :(得分:6)

原子用于任何加载的模块就足够了,例如在case表达式或其他比较中匹配。

如果比较发生在与您调用binary_to_existing_atom的模块不同的模块中,那么您需要确保在转换时加载该模块。如果您构建一个版本并以“嵌入”模式运行它,那么所有模块都将在启动时加载。否则,模块将在被调用时被加载,因此如果所讨论的模块是例如一个gen_server由应用程序的监督树启动,那你就没事了。