Erlang - 模式匹配


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

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

  • B = 1。
  • 2 = 2。
  • {好的,C} = {好的,40}。
  • [H|T] = [1, 2, 3,4]。

请注意,在第四个示例中,管道 (|) 表示列表的头部和尾部,如术语中所述。另请注意,左侧应与右侧匹配,这是模式的正常情况。

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

  • 1 = 2。
  • {ok,A} = {失败,“不知道问题”}。
  • [H|T] = []。

对于模式匹配运算符,失败会生成错误并且进程退出。错误中介绍了如何捕获和处理这种情况。模式用于选择将执行函数的哪个子句。