📅  最后修改于: 2023-12-03 15:30:37.909000             🧑  作者: Mango
Erlang头文件包含在代码中用到的各种宏定义、函数声明等,可以帮助程序员更好地理解和使用Erlang语言。
stdlib.hrl
标准库头文件,包含了许多常用的宏定义和函数声明,例如lists
模块中的函数、string
模块中的函数、io
模块中的函数等。
%% 使用`stdlib.hrl`中的宏定义和函数声明
-include_lib("stdlib/include/stdlib.hrl").
foo() ->
io:format("~s~n", [atom_to_list(?MODULE)]),
lists:map(fun (X) -> X + 1 end, [1, 2, 3]),
string:concat(["hello", "world"]),
timer:sleep(1000),
ok.
kernel.hrl
内核头文件,包含了一些系统级别的宏定义和函数声明,例如节点名、进程标识符等。
%% 使用`kernel.hrl`中的宏定义和函数声明
-include_lib("kernel/include/kernel.hrl").
foo() ->
Node = node(),
Pid = self(),
io:format("~s~n", [node()]),
io:format("~p~n", [self()]),
ok.
ets.hrl
ETS头文件,包含了一些ETS表的操作函数声明,例如创建表、添加数据等。
%% 使用`ets.hrl`中的函数声明
-include_lib("stdlib/include/ets.hrl").
foo() ->
%% 创建名为`my_table`的ETS表
MyTable = ets:new(my_table, []),
%% 向ETS表中添加一条数据
ets:insert(MyTable, {key1, value1}),
%% 获取ETS表中的所有数据
AllData = ets:tab2list(MyTable),
%% 打印所有数据
io:format("~p~n", [AllData]),
ok.
除了上述常用头文件外,还有其他一些头文件,例如:
dialyzer.hrl
:Dialyzer类型注解头文件。ssl.hrl
:SSL/TLS头文件。syntax_tools.hrl
:语法工具头文件,用于编写和转换源代码。Erlang头文件丰富了Erlang代码的表现力和可读性,开发者可以根据自己的需求选择和使用不同的头文件来编写高质量的Erlang代码。