当前位置: 首页 > 文档资料 > Erlang 中文教程 >

模式匹配( Pattern Matching)

优质
小牛编辑
113浏览
2023-12-01

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

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

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

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

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

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

在模式匹配运算符的情况下,失败会生成错误并且进程退出。 错误中包含了如何捕获和处理它的方法。 模式用于选择将执行函数的哪个子句。