Unetway

Erlang - Pattern Matching

Создать свой сайт

Шаблоны выглядят так же, как и термины - они могут быть простыми литералами, такими как атомы и числа, сложными, как кортежи и списки, или их смесью. Они также могут содержать переменные, которые представляют собой буквенно-цифровые строки, начинающиеся с заглавной буквы или подчеркивания. Специальная «анонимная переменная», _ (подчеркивание) используется, когда вы не заботитесь о значении, которое нужно сопоставить, и не будет использовать его.

Образец совпадает, если он имеет ту же «форму», что и согласованный термин, и встречающиеся атомы одинаковы. Например, следующие совпадения успешны -

B = 1.
2 = 2.
{ok, C} = {ok, 40}.
[H|T] = [1, 2, 3,4].

Обратите внимание, что в четвертом примере труба (|) обозначает заголовок и хвост списка, как описано в Условиях. Также обратите внимание, что левая сторона должна соответствовать правой стороне, которая является нормальным случаем для шаблонов.

Следующие примеры сопоставления шаблонов не удастся.

1 = 2.
{ok, A} = {failure, "Don't know the question"}.
[H|T] = [].

В случае оператора сопоставления шаблонов ошибка генерирует ошибку, и процесс завершается. Как это может быть захвачено и обработано, оно покрывается ошибками. Шаблоны используются для выбора того, какое условие функции будет выполнено.