Erlang - сопоставление с образцом
Шаблоны выглядят так же, как термины - они могут быть простыми литералами, такими как атомы и числа, составными, такими как кортежи и списки, или их смесью. Они также могут содержать переменные, которые представляют собой буквенно-цифровые строки, начинающиеся с заглавной буквы или символа подчеркивания. Специальная «анонимная переменная» _ (подчеркивание) используется, когда вы не заботитесь о значении, которое нужно сопоставить, и не собираетесь его использовать.
Шаблон соответствует, если он имеет ту же «форму», что и сопоставляемый термин, и встречающиеся атомы такие же. Например, следующие совпадения успешны -
- В = 1.
- 2 = 2.
- {ОК, C} = {ОК, 40}.
- [H | T] = [1, 2, 3,4].
Обратите внимание, что в четвертом примере вертикальная черта (|) обозначает начало и конец списка, как описано в разделе «Условия». Также обратите внимание, что левая сторона должна соответствовать правой стороне, что является нормальным случаем для шаблонов.
Следующие ниже примеры сопоставления с образцом не удастся.
- 1 = 2.
- {ok, A} = {отказ, "Не знаю вопроса"}.
- [H | T] = [].
В случае оператора сопоставления с образцом сбой вызывает ошибку, и процесс завершается. Как это можно поймать и обработать, описано в разделе Ошибки. Шаблоны используются для выбора того, какое предложение функции будет выполнено.