Итак, я пишу программу Erlang, и у меня есть сообщение в виде строки, входящей через сокет.Проблема соответствия шаблону 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
Он отлично работает, если сообщение является правильным, но это только кажется, что сбой, если сообщение не совпадает.
У меня есть чувство, что я может идти об этом полностью неправильно, но я не уверен, что еще попробовать ...
Приветствия за любую помощь или совет =]
EDIT : Хорошо, неважно! Замена "true->"
на "_->"
заставляет его работать просто отлично -_- глупо меня!
Мне все равно было бы интересно узнать, является ли это лучшим способом для этого, или если есть лучший способ.
Приветствия снова :)
Как вы имеете в виду лучший способ? Проверить структуру? В этом случае использование соответствия шаблонов - путь. Независимо от того, выполняете ли вы его с помощью «case» или отдельной функции, зависит от того, что подходит лучше всего. Или ты думал о чем-то другом? – rvirding