Erlang 中未使用变量的警告
我最近启动了 Erlang,我注意到在编译时不断收到“警告:变量 X 未使用”。 例如,采用以下函数,该函数查找列表中的最大元素:
max([Head|Tail]) ->
max(Head,Tail).
max(Element,[Head | Tail]) when Element < Head ->
max(Head,Tail);
max(Element,[Head | Tail]) ->
max(Element, Tail);
max(Element,[]) ->
Element.
编译器警告我,在函数的第三种情况下,Head 未使用。 没有Head怎么写函数呢?
I recently started Erlang, and I notice I constantly get "Warning: variable X is unused" while compiling. For example, take the following function, which finds the maximum element in a list:
max([Head|Tail]) ->
max(Head,Tail).
max(Element,[Head | Tail]) when Element < Head ->
max(Head,Tail);
max(Element,[Head | Tail]) ->
max(Element, Tail);
max(Element,[]) ->
Element.
The compiler warns me that in the 3rd case of the function, Head is unused. How can the function be written without Head?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
应该做到这一点。 原因是用“_”替换“Head”是表示参数将放置在那里的语法,但我不需要它。
Should do the trick. The reason being that replacing 'Head' with '_' is syntax for saying that a parameter will be placed there, but I don't need it.
这应该会抑制警告而不引起混淆:
This should suppress the warning without being confusing:
如果您将变量命名为
_
而不是Name
(例如_
而不是Head
),则该变量将不会被绑定,并且您不会收到警告。如果您将变量命名为
_Name
而不是Name
(例如_Head
而不是Head
),则变量将 被绑定,但你仍然不会收到警告。 在代码中引用以_
开头的变量被认为是非常不好的做法。建议保留变量的名称以提高代码的可读性(例如,比
_
更容易猜测_Head
的用途)。If you name a variable
_
instead ofName
(e.g._
instead ofHead
) the variable will not be bound, and you will not get a warning.If you name a variable
_Name
instead ofName
(e.g._Head
instead ofHead
) the variable will be bound, but you will still not get a warning. Referencing a variable beginning with_
in the code is considered very bad practice.It is recommended to keep the name of the variable to improve the readability of the code (e.g. it is easier to guess what
_Head
was intended for than just_
).