首页 > Erlang并发教程 > 3.21 Erlang并发编程-子句主体
2013
11-06

3.21 Erlang并发编程-子句主体

BACK TOP文章索引

  1. 子句主体
  2. 共0条评论

子句主体

子句的主体有一个或多个有逗号分隔的表达式序列组成。序列中的表达式依次被求值。表达式序列的值被定义为序列中最后一个表达式的值。例如,factorial的第二个子句可以写成:

factorial(N) when N > 0 ->
    N1 = N - 1,
    F1 = factorial(N1),
    N * F1.

在对序列求值的过程中,表达式的求值结果要么与一个模式进行匹配,要么被直接丢弃。将函数主体拆分为序列的原因有这么几条:

  • 确保代码的顺序执行——函数主体中的表达式是依次求值的,而在嵌套的函数调用中的函数则可能以任意顺序执行。
  • 增强代码可读性——将函数写成表达式序列可以令程序更清晰。
  • (通过模式匹配)拆解函数的返回值。
  • 重用函数调用的返回值。

对函数返回值的多次重用的示例如下:

good(X) ->
        Temp = lic(X),
        {cos(Temp), sin(Temp)}.

上面的写法比下面这么写要好:

bad(X) ->
        {cos(lic(X)), sin(lic(X)}.

二者表达的是同一个含义。lic代表长而复杂的计算过程(Long and Involved Calculation),即那些计算代价高的函数。


留下一个回复

你的email不会被公开。