何时使用Erlang记录而不是元组?

时间:2014-05-16 14:32:07

标签: list types erlang tuples record

我什么时候应该使用Erlang记录而不是元组?或者,反之亦然,何时不需要Erlang记录?我对Erlang相对较新,我不确定我是否正确使用记录和元组。我从我读过的内容中了解到,记录基本上都是作为元组存储在幕后。

我通常使用记录来处理将在应用程序中传递或持久存储的数据。我使用元组之类的函数,例如函数的返回值,函数的参数以及特定于函数体的东西。

我是否正确使用了记录和元组?是否有文档概述何时应该使用另一种类型?

1 个答案:

答案 0 :(得分:6)

这是一个风格问题。但请注意:

  • 大型元组的元组难以正确,您可以轻松交换值。记录命名每个字段使交换不太可能。
  • 您可以轻松匹配所有字段子集的记录。
  • 记录总是需要相同的arity。因此,它们不适合模仿总和类型。
  • 如果在模块之间使用,则不会通过模块共享记录,这会导致大量带有include语句的.hrl文件。这打破了抽象。
  • 记录可以保持模块本地化,使其他人更难使用记录。这改善了模块化。