String Erlang模式匹配问题
所以我正在编写一个Erlang程序,我有一条消息作为字符串通过套接字传入 我需要检查以确保消息的格式为:[整数,空格,整数,“\r\n”] e、 g.“1 3\r\n”,然后仅在消息与此格式匹配时执行操作 我试过了String Erlang模式匹配问题,string,list,erlang,pattern-matching,validation,String,List,Erlang,Pattern Matching,Validation,所以我正在编写一个Erlang程序,我有一条消息作为字符串通过套接字传入 我需要检查以确保消息的格式为:[整数,空格,整数,“\r\n”] e、 g.“1 3\r\n”,然后仅在消息与此格式匹配时执行操作 我试过了 case Move of [X1, 32 ,Y1,13,10]-> %do stuff.... true-> %don't do stuff... end 如果消息正确,它可以正常工作,但如果消息不匹配,它似乎会
case Move of
[X1, 32 ,Y1,13,10]->
%do stuff....
true->
%don't do stuff...
end
如果消息正确,它可以正常工作,但如果消息不匹配,它似乎会崩溃
我有一种感觉,我可能完全走错了路,但不知道还有什么可以尝试
为任何帮助或建议干杯=]编辑:没关系!将
“true->”
替换为“
”使其工作正常-我真傻
我仍然有兴趣知道这是最好的方法,还是有更好的方法
再次干杯:)您必须使用匹配任何内容的-通配符,而不是true 哦,看到你的编辑太晚了 第二个问题的答案是-使用函数而不是案例:
f([X1, 32, Y1, 13, 10]) ->
...;
f(_) ->
ok.
你说更好的方法是什么意思?测试结构?在这种情况下,使用模式匹配是一条出路。您是使用
案例
还是使用单独的功能,取决于最适合的功能。还是你在想别的什么?