码迷,mamicode.com
首页 > 其他好文 > 详细

Erlang 模式匹配

时间:2015-11-12 18:00:16      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:

模式匹配

下面张表里有一些模式与单位的例子,模式里的所有变量都假定未被绑定过。单位就是指任何一种 Erlang 数据结构。

模式 = 单元 结果
{X,adc} = {123, abc} 成功: X = 123
{X,Y,Z} = {222,def,"cat"} 成功: X = 222, Y = def, Z = "cat"
{X,Y} = {333,ghi,"cat"} 失败: 左右两边元组结构不同
X = true 成功: X = true
{X,Y,X} = {{abc,12},42,{abc,12}} 成功: X = {abc,12}, Y = 42
{X,Y,X} = {{abc,12},42,true} 失败: X 不能被重复绑定
[H|T] = [1,2,3,4,5] 成功: H = 1, T = [2,3,4,5]
[H|T] = "cat" 成功: H = 99, T = "at"
[A,B,C|T] = [a,b,c,d,e,f] 成功: A = a, B = b, C = c, T = [d,e,f]

如果对其中一条不够确定,可以在 Erlang shell 验证。

1> {X, abc} = {123, abc}.
{123,abc}
2> X.
123
3> f().
ok
4> {X,Y,Z} = {222,def,"cat"}.
{222,def,"cat"}
5> X.
222
6> Y.
def
7> Z.
"cat"

Erlang 模式匹配

标签:

原文地址:http://www.cnblogs.com/mydevops/p/4959337.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!