function - Erlang:从 beam 可执行文件调用 rr(?MODULE)?

标签 function erlang initialization record

我不太确定如何在 Erlang 模块中定义 Erlang 函数。我收到以下错误:

11> invoke_record:invoke().
** exception error: undefined function erlang:rr/1

从这个简单的代码尝试调用 rr(?MODULE). 从 beam 可执行文件中以“初始化”记录,这样就不需要每次都从 shell 中调用它时间。

-module(invoke_record).
-export([invoke/0]).
-record(process, {pid,
                reference="",
                lifetime=0
                }).
invoke() ->
    erlang:rr(?MODULE).

最佳答案

命令 rr("file.hrl"). 只能在 shell 中用于调试目的。

正如其他用户在他们的回答中强调的那样,在您的 erlang 代码中导入 .hrl 文件中包含的记录(或函数)的正确方法是使用命令 -include("file.hrl')

一旦您将 .hrl 文件包含在您的代码中(并且通常在基于 OTP 行为的模块中,这是在 -export(...) 之后完成的部分)您可以毫无问题地引用 Erlang 记录(或函数)。

关于function - Erlang:从 beam 可执行文件调用 rr(?MODULE)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15284986/

相关文章:

Erlang eDoc : Function doc comments don't show up in output

Erlang (Elixir) Dialyzer - 令人困惑的父类(super class)型错误

c++ - 如何为列表编写排序函数?

javascript - 如何将 jQuery/Javascript 函数转换为方法

c++ - 为什么我的成员函数不起作用?

servlets - web.xml 中的 load-on-startup 可以用来在启动时加载任意类吗?

c - 警告 : missing braces around initializer [-Wmissing-braces] (IN MACRO)

r - 使用 for 循环创建一个函数来比较多项式回归中多项式的次数

erlang - Erlang 代码热交换在事件过程中是如何工作的?

ios - Swift 中变量声明和定义的区别