Erlang模式匹配问题

时间:2011-01-28 20:44:49

标签: string list erlang pattern-matching validation

所以我正在写一个Erlang程序,我有一个消息作为字符串通过套接字进入。

我需要检查以确保消息的格式为:[Integer,Space,Integer,“\ r \ n”] 例如“1 3 \ r \ n”然后只有在消息符合此格式时才会执行某些操作。

我试过了

 
 case Move of
     [X1, 32 ,Y1,13,10]->
         %do stuff....  
    true-> 
       %don't do stuff...  
    end 

如果消息正确,它可以正常工作,但如果消息不匹配,它似乎就会崩溃。

我有一种感觉,我可能会以完全错误的方式解决这个问题,但我不确定还有什么可以尝试......

欢呼任何帮助或建议=]

编辑:好的,没关系!用"true->"替换"_->"使它工作得很好-_-愚蠢的我!

我仍然有兴趣知道这是否是最好的解决方法,或者是否有更好的方法。

再次干杯:)

1 个答案:

答案 0 :(得分:3)

而不是true你必须使用_ - 匹配任何东西的通配符

P.S。哎呀,看到你的编辑太晚了。

回答你的第二个问题是 - 使用函数而不是案例:

f([X1, 32, Y1, 13, 10]) ->
  ...;
f(_) ->
  ok.