首页 > Erlang并发教程 > 2.5 Erlang并发编程-匹配原语“=”
2013
11-04

2.5 Erlang并发编程-匹配原语“=”

Erlang匹配原语“=”

表达式Pattern = Expression致使Expression被求值并尝试与\ Pattern 进行匹配。匹配过程要么成功要么失败。一旦匹配成功,则Pattern中所有的变量都被绑定,例如:

> N = {12, banana}.
{12,banana}
> {A, B} = N.
{12,banana}
> A.
12
> B.
banana

匹配原语可用于从复杂数据结构中拆分元素。

> {A, B} = {[1,2,3], {x,y}}.
{[1,2,3],{x,y}}
>A.
[1,2,3]
>B.
{x,y}
> [a,X,b,Y] = [a,{hello, fred},b,1].
[a,{hello,fred},b,1]
> X.
{hello,fred}
> Y.
1
> {_,L,_} = {fred,{likes, [wine, women, song]},
  {drinks, [whisky, beer]}}.
{fred,{likes,[wine,women,song]},{drinks,[whisky,beer]}}
> L.
{likes,[wine,women,song]}

下划线(写作“_”)代表特殊的匿名变量或无所谓变量。在语法要求需要一个变量但又不关心变量的取值时,它可用作占位符。

如果匹配成功,定义表达式Lhs = Rhs的取值为Rhs。这使得在单一表达式中使用多重匹配成为可能,例如:

{A, B} = {X, Y} = C = g{a, 12}

=”是右结合操作符,因此A = B = C = D被解析为A = (B = (C = D))


2.5 Erlang并发编程-匹配原语“=”》有 1 条评论

  1. 请教:{A, B} = {X, Y} = C = g{a, 12} 这个g{a, 12}是什么意思

留下一个回复

你的email不会被公开。