下面是一个例子:
-module(my_server).
-record(server_opts,
{port, ip = "127.0.0.1", max_connections = 10}).
Opts1 = #server_opts{port=80}.
当我尝试在Erlang shell中编译它时,它给出了一个类似syntax error before Opts1
的错误。你知道上面的代码可能有什么问题吗?请注意,代码来自以下网站:Record example in Erlang。
2条答案
按热度按时间slsn1g291#
The following line:
Should be contained within a function body:
Remember to export the function, so that you can call it from outside the module:
A complete example follows:
wh6knrhe2#
也许,您认为
Opts1
是一个全局常量,但在Erlang中没有全局变量。您可以使用宏定义来拥有类似全局常量(实际上在编译时被替换)的内容:
附言**使用shell中的记录。**假设-您已经创建了包含记录
server_opts
定义的文件my_server.hrl
。首先您必须使用函数rr("name_of_file_with_record_definition")
加载记录定义,然后您就可以在shell中使用记录了: