首页 > Erlang并发教程 > 3.6 Erlang并发编程-模式匹配
2013
11-05

3.6 Erlang并发编程-模式匹配

Erlang模式匹配

模式与项式有着相同的结构,但它们还可以包含变量。变量名都以大写字母开头。

模式示例:

{A, a, 12, [12,34|{a}]}
{A, B, 23}
{x, {X_1}, 12, My_cats_age}
[]

以上的ABX_1My_cats_age都是变量。

模式匹配为变量赋值提供了基本的机制。被赋值后,变量便被绑定——否则便是未绑定变量。给变量赋值的动作称作“绑定”。变量一旦被绑定便不可更改。这种变量属性被称为一次性绑定单次赋值。这种属性与传统命令式语言的破坏性赋值相反。

如果一个模式与一个项式在结构上同构,且在模式中任一位置出现的原子数据类型也都在项式的相应位置上出现,则称他们它们相互匹配。如果模式中包含未绑定变量,则该变量在匹配过程中将被绑定到项式中相应的元素。如果在模式中相同的变量多次出现,则项式中对应位置的元素也必须相同。

模式匹配在以下情况下发生:

  • 计算形如Lhs = Rhs的表达式时
  • 调用函数时
  • casereceive原语中对指定模式进行匹配时

留下一个回复

你的email不会被公开。