Erlang记录表达式忽略警告

Erlang记录表达式忽略警告,erlang,Erlang,我有以下代码: Check#tab_info{login_errors = 0}, {ok, PID}; 但当我试图编译它时,我得到了警告: 表达式的结果将被忽略,通过将表达式指定给u变量来抑制警告 怎么了?我怎样才能修好它 谢谢。好吧,编译器会准确地告诉您出了什么问题:您创建了一个新的tab_信息记录,但从不将其绑定到任何变量。因此,代码是没有意义的,编译器告诉您这一点。更改Check变量或更正确地更改Check变量,创建新变量将不会产生任何效果,除非您返回它。Check不是

我有以下代码:

    Check#tab_info{login_errors = 0},
    {ok, PID};
但当我试图编译它时,我得到了警告:

表达式的结果将被忽略,通过将表达式指定给u变量来抑制警告

怎么了?我怎样才能修好它


谢谢。

好吧,编译器会准确地告诉您出了什么问题:您创建了一个新的tab_信息记录,但从不将其绑定到任何变量。因此,代码是没有意义的,编译器告诉您这一点。更改Check变量或更正确地更改Check变量,创建新变量将不会产生任何效果,除非您返回它。Check不是一个全局变量,就像在命令式语言中一样。另外,更改作为函数参数接收的变量不会导致调用方对变量的看法发生变化

您希望将表达式绑定到某个变量,然后对其执行有意义的操作

NewCheck = Check#tab_info{...}
{ok, Pid, NewCheck}

作为补充说明,如果您执行了函数调用,并且没有将返回值绑定到任何东西,编译器不会抱怨,因为函数可能有副作用,这可能是您首先调用函数的原因。

好吧,编译器正是在告诉您出了什么问题:您创建了一个新的选项卡信息记录,但永远不要将其绑定到任何变量。因此,代码是没有意义的,编译器告诉您这一点。更改Check变量或更正确地更改Check变量,创建新变量将不会产生任何效果,除非您返回它。Check不是一个全局变量,就像在命令式语言中一样。另外,更改作为函数参数接收的变量不会导致调用方对变量的看法发生变化

您希望将表达式绑定到某个变量,然后对其执行有意义的操作

NewCheck = Check#tab_info{...}
{ok, Pid, NewCheck}
作为补充说明,如果您执行了函数调用,并且没有将返回值绑定到任何东西,编译器不会抱怨,因为函数可能有副作用,这可能是您首先调用函数的原因