首页 > Erlang并发教程 > 3.8 Erlang并发编程-函数调用中的模式匹配
2013
11-05

3.8 Erlang并发编程-函数调用中的模式匹配

BACK TOP文章索引

  1. 函数调用中的模式匹配
  2. 共0条评论

函数调用中的模式匹配

Erlang通过模式匹配来提供选择和控制流程。例如,程序2.1定义了一个函数classify_day/1,当调用参数为saturdaysunday时返回weekEnd,否则返回weekDay 。

程序 2.1

-module(dates).
-export([classify_day/1]).

classify_day(saturday) -> weekEnd;
classify_day(sunday)   -> weekEnd;
classify_day(_)        -> weekDay.

进行函数求值时,会将函数的参数与函数定义中出现的模式一一进行匹配。一旦发现一个成功的匹配,“->;”之后的符号便被求值,因此:

> dates:classify_day(saturday).
weekEnd
> dates:classify_day(friday).
weekDay

如果所有的子句都不匹配,则函数调用失败(失败将引发第??章描述的错误捕捉机制)。

当执行流程进入一个函数的某个子句时,描述该子句的模式所包含的变量将被绑定。因此,举例来说,对程序1.3的math3:area({square, 5})进行求值将致使变量Side被绑定到5


留下一个回复

你的email不会被公开。