Erlang基础之模式匹配(1)

    模式匹配在Erlang语言中具有极其重要的作用,也是Erlang独特性的一个重要方面。

    模式匹配的基本形式为:

           左端= 右端

   其中,右端可以是一个具体的值,也可以是一个表达式;左端可以是一个简单的变量,也可以是一个由变量和原子等形式构成。“=”称为模式匹配运算符。

   模式匹配的基本过程为:

   1.右端部分若为表达式则应先计算表达式的值;

   2.将左端的模式与右端值进行匹配:成功则绑定未曾绑定的变量,并返回模式匹配表达式的值;失败则可能会引发错误或改变程序的执行流程等。

   本节首先介绍简单赋值性模式匹配

   在Erlang语言中,也是可以用变量作为标志一个值的符号,并要求变量的符号必须用大写字母开头,其后只能是大小写字母、整数和下划线。

Erlang中变量是单一赋值变量。即在某一变量作用域内只能被赋值一次(更准确的应是只能被绑定一次),即变量由自由变量状态改变为绑定变量状态。否则模式匹配失败,同时也不会对变量进行绑定。

   下面举例说明简单赋值性模式匹配,如图所示:

    三个执行的语句都是最简单的模式匹配语句:

   1.先计算右端7+2的值,结果为9,之后将9与自由变量X进行模式匹配,X是自由变量,所以将X绑定为9,并匹配成功,最后返回模式匹配表达式的值9。

   2.对X=9进行模式匹配时,X已经绑定为9,而右端的值正好也是9,所以模式匹配成功。但X已绑定,所以模式匹配时并不进行绑定。最返回模式匹配表达式的值9。

   3.对X=4进行模式匹配时,X已经绑定为9,而右端的值为4,所以模式匹配失败。Erlang给出了“**exception error: no match of right hand side value 4”模式匹配失败的提示。

   注:在Erlang的交互式环境中,使用f(X)可以把变量X由绑定变量状态改变为自由变量状态,方便进行调试。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值