当前位置:  开发笔记 > 编程语言 > 正文

有关Erlang中未使用变量的警告

如何解决《有关Erlang中未使用变量的警告》经验,为你挑选了3个好方法。

我最近启动了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的情况下编写函数?



1> Dustin..:

这应该抑制警告而不会混淆:

max(Element,[_Head | Tail]) ->
   max(Element, Tail);



2> Adam Lindber..:

如果您命名变量_而不是Name(例如,_而不是Head)变量将不受约束,并且您将不会收到警告.

如果您命名变量_Name而不是Name(例如,_Head而不是Head)变量被绑定,但您仍然不会收到警告.引用以_代码开头的变量被认为是非常糟糕的做法.

建议保留变量的名称以提高代码的可读性(例如,更容易猜出_Head目的是什么而不仅仅是_).



3> Nicholas Man..:
    max([Head|Tail]) ->
       max(Head,Tail).

    max(Element,[Head | Tail]) when Element < Head ->
       max(Head,Tail);
    max(Element,[_| Tail]) ->
       max(Element, Tail);
    max(Element,[]) ->
       Element.

应该做的伎俩.将'Head'替换为'_'的原因是说参数将放在那里,但我不需要它.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有