Учебники

Erlang — Pattern Matching

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

Шаблон соответствует, если он имеет ту же «форму», что и сопоставляемый термин, и встречающиеся атомы совпадают. Например, следующие совпадения успешны —

  • B = 1.
  • 2 = 2.
  • {хорошо, C} = {хорошо, 40}.
  • [H | T] = [1, 2, 3,4].

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

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

  • 1 = 2
  • {хорошо, A} = {ошибка, «Не знаю вопроса»}.
  • [H | T] = [].

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