Erlang 模式匹配

模式看起来与术语相同–它们可以是简单的文字,例如原子和数字,也可以是诸如元组和列表的复合词,也可以是两者的混合体。它们还可以包含变量,这些变量是以大写字母或下划线开头的字母数字字符串。当您不关心要匹配的值并且不会使用它时,将使用特殊的“匿名变量” _(下划线)。

如果模式与被匹配的术语具有相同的“形状”,则该模式匹配,并且遇到的原子相同。例如,以下匹配成功-

  • B = 1。

  • 2 = 2。

  • {ok,C} = {ok,40}。

  • [H | T] = [1,2,3,4]。

请注意,在第四个示例中,用竖线(|)表示列表的开头和结尾,如条款中所述。还要注意,左手边应与右手边相匹配,这是图案的正常情况。

以下模式匹配示例将失败。

  • 1 = 2。

  • {ok,A} = {失败,“不知道这个问题”}。

  • [H | T] = []。

对于模式匹配运算符,失败会产生错误并退出流程。错误中将介绍如何捕获和处理此错误。模式用于选择将执行功能的哪个子句。