gpt4 book ai didi

types - Erlang 头文件 (.hrl) 中应该和不应该有什么?

转载 作者:行者123 更新时间:2023-12-04 05:13:11 25 4
gpt4 key购买 nike

我对 .hrl 的内容有点困惑文件应该用于。据我了解.hrl文件可以包含任何有效的 Erlang 代码,并且使用 -include指令实质上会将代码插入 .hrl文件到包含它的任何模块中。

什么样的代码适合放在这些.hrl那么文件呢? Erlang 的编程规则对记录有以下规定:

If the record is to be used in several modules, its definition should be placed in a header file (with suffix .hrl) that is included from the modules.



结果,我养成了在代码中这样做的习惯。但是,我也喜欢将记录的实例化和比较函数以及类型定义等内容放在我的标题中(因为这是我在 C 中会做的事情)。这是不好的形式吗?应该从 .erl 导出类型吗?文件而不是,即使它们在多个模块中使用?似乎没有关于可用 Erlang header 的最佳实践的文档。

最佳答案

与 C 一样,include 语句实际上将包含文件的内容添加到 erl 文件中。因此,将任何实际代码放入 hrl 文件将导致该代码被复制到您包含它的任何地方。这将导致每个 Erlang 模块中不必要的功能重复。

我会将任何实际的 Erlang 代码放在它自己的 erl 模块中,并将任何记录定义、类型规范或通用宏放在 hrl 文件中。记录定义和类型规范不会编译到二进制文件中,因此它们可以安全地包含在多个文件中。

关于types - Erlang 头文件 (.hrl) 中应该和不应该有什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16403111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com