在函数中使用记录

时间:2016-07-27 15:16:13

标签: erlang

我只是在玩唱片,而且我试图写一个与唱片一起工作的函数。我认为问题是如何将记录定义读入我的模块文件。

reocords.hrl文件:

% Modeling a todo list
-record(todo, {status=reminder, who=joe, text}).

然后是use_records.erl文件:

%% Use the records defined in "records.hrl"
-module(use_records).
-export([todo_to_tuple/1]).

rr("records.hrl").
todo_to_tuple(#todo{who=W, text=T} = R) -> {W, T}.

当我尝试编译它时,我得到:

24> c(use_records).
use_records.erl:5: variable 'T' is unbound
use_records.erl:5: variable 'W' is unbound
use_records.erl:5: record todo undefined
use_records.erl:5: Warning: variable 'R' is unused
error

如果删除rr("records.hrl")行,则错误相同。所以我认为真正的问题是能够读取记录定义(或不​​是?)。请帮忙!

1 个答案:

答案 0 :(得分:4)

rr/1仅包含在shell中的记录定义。

为了在代码中包含记录定义,请使用:

-include("records.hrl")