技术开发 频道

Erlang编程入门之认识常量

  【IT168 技术文档】常量是Erlang中的一种数据类型。常量以小写字符开头,例如:charles、centimeter、inch等。常量仅仅只是一个简单的名字,不想我们的变量带有自身的值。

  键入下面的程序到tut2.erl文件中,该程序帮助我们将英尺转换为厘米:

  -module(tut2).   -export([convert/2]).   convert(M, inch) ->   M / 2.54;   convert(N, centimeter) ->   N * 2.54.

  编译并测试一下:

  9> c(tut2).

  {ok,tut2}

  10> tut2:convert(3, inch).

  1.18110

  11> tut2:convert(7, centimeter).

  17.7800

  注意我们这里使用了十进制的数值(浮点类型),而并没有任何显式的的声明,但是我猜想你们是可以应付这种情况的。

  看一下我们键入其他东西会发生什么情况(除了inch和centimeter之外的):

  13> tut2:convert(3, miles).   =ERROR REPORT==== 8-Oct-2006::22:52:46 ===   Error in process <0.25.0> with exit value: {function_clause,[{tut2,convert,   [3,miles]},{erl_eval,expr,3},{erl_eval,exprs,4},{shell,eval_loop,2}]}   ** exited: {function_clause,[{tut2,convert,[3,miles]},   {erl_eval,expr,3},   {erl_eval,exprs,4},   {shell,eval_loop,2}]} **

  这里有两部分被称为子句的内容存在于convert函数中,但是miles并不是这两部分中的其中一部分。于是Erlang系统不能成功的匹配函数中的子句调用,于是我们就看到了上面的出错提示function_clause消息。上面的输出看上去是“典型的一团糟”,但是经过我们认真的观察,我们可以清楚的直到代码中到底是发生了什么。

0
相关文章