Erlang 在记录构建时给出语法错误

cof*_*Mug 1 syntax erlang record erlang-shell

我在一个模块中有以下代码:

-module(my_server).

-record(server_opts,
        {port, ip = "127.0.0.1", max_connections = 10}).

Opts1 = #server_opts{port=80}.
Run Code Online (Sandbox Code Playgroud)

当我尝试在 Erlang shell 中编译它时,它会给出类似 syntax error before Opts1. 知道上面的代码可能有什么问题。请注意,代码取自以下网站: 在 Erlang 中记录示例

Rob*_*loi 5

以下行:

Opts1 = #server_opts{port=80}.
Run Code Online (Sandbox Code Playgroud)

应该包含在函数体中:

foo() ->
    Opts1 = #server_opts{port=80},
    ...
Run Code Online (Sandbox Code Playgroud)

记得导出函数,这样你就可以从模块外部调用它:

-export([test_records/0]).
Run Code Online (Sandbox Code Playgroud)

一个完整的例子如下:

-module(my_server).

-export([test_records/0]).

-record(server_opts, {port,
                      ip = "127.0.0.1",
                      max_connections = 10}).

test_records() ->
    Opts1 = #server_opts{port=80},
    Opts1#server_opts.port.
Run Code Online (Sandbox Code Playgroud)