我有以下代码:
Check#tab_info{login_errors = 0},
{ok, PID};
但是当我尝试编译它时会收到警告:
忽略表达式的结果(通过将表达式赋值给_变量来抑制警告)
怎么了?我该如何解决?
谢谢。
答案 0 :(得分:9)
好吧,编译器告诉你到底出了什么问题:)你创建了一个新的#tab_info
记录,但绝不会将它绑定到任何变量。因此代码没有意义,编译器告诉你。更改Check
变量(或更准确地说,创建一个新变量)将不起作用,除非您将其返回。 Check
不是全局变量,就像在命令式语言中一样。此外,将您收到的变量作为参数更改为函数,不会导致调用者看到变量的方式发生变化。
您希望将表达式绑定到某个变量,然后使用它执行一些有意义的操作。
NewCheck = Check#tab_info{...}
{ok, Pid, NewCheck}
作为旁注,如果你做了一个函数调用而没有将返回值绑定到任何东西,编译器就不会抱怨因为函数可能有副作用,这可能是你调用函数的原因。第一名。