也许,你认为这Opts1
是一个全局常量,但是 erlang 中没有全局变量。
您可以使用宏定义来获得类似全局常量的东西(实际上在编译时被替换):
-module(my_server).
-record(server_opts,
{port,
ip="127.0.0.1",
max_connections=10}).
%% macro definition:
-define(Opts1, #server_opts{port=80}).
%% and use it anywhere in your code:
my_func() ->
io:format("~p~n",[?Opts1]).
PS
使用 shell 中的记录。假设 - 您已经创建了my_server.hrl
包含记录定义的文件server_opts
。首先,您必须使用 function 加载记录定义,rr("name_of_file_with_record_definition")
之后您就可以在 shell 中处理记录了:
1> rr("my_record.hrl").
[server_opts]
2>
2> Opts1 = #server_opts{port=80}.
#server_opts{port = 80,ip = "127.0.0.1",
max_connections = 10}
3>
3> Opts1.
#server_opts{port = 80,ip = "127.0.0.1",
max_connections = 10}
4>