Erlang - Correspondance de motifs

Les motifs ressemblent à des termes - ils peuvent être de simples littéraux comme des atomes et des nombres, des composés comme des tuples et des listes, ou un mélange des deux. Ils peuvent également contenir des variables, qui sont des chaînes alphanumériques commençant par une majuscule ou un trait de soulignement. Une "variable anonyme" spéciale, _ (le trait de soulignement) est utilisée lorsque vous ne vous souciez pas de la valeur à rechercher et que vous ne l'utiliserez pas.

Un motif correspond s'il a la même «forme» que le terme correspondant, et les atomes rencontrés sont les mêmes. Par exemple, les correspondances suivantes réussissent -

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

Notez que dans le quatrième exemple, le tube (|) signifie la tête et la queue de la liste comme décrit dans Termes. Notez également que le côté gauche doit correspondre au côté droit, ce qui est le cas normal pour les motifs.

Les exemples suivants de correspondance de modèles échoueront.

  • 1 = 2.
  • {ok, A} = {échec, "Je ne connais pas la question"}.
  • [H | T] = [].

Dans le cas de l'opérateur de correspondance de modèle, un échec génère une erreur et le processus s'arrête. La façon dont cela peut être piégé et géré est traitée dans Erreurs. Les modèles sont utilisés pour sélectionner la clause d'une fonction qui sera exécutée.