Erlang模块与Erlang程序的运行方法
Posted IT萌新
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Erlang模块与Erlang程序的运行方法相关的知识,希望对你有一定的参考价值。
一、模块与程序文件
Erlang是一种函数式编程语言,当我们要完成一个项目时,总不可能把所有的函数都定义在一个程序文件中,为了开发和维护方便,通常按逻辑功能划分将其分别分散在多个程序文件中。
每个Erlang程序文件就是一个模块,文件名的扩展名部分为.erl,模块的名称必须与文件名称中的主文件名完全相同(不包括扩展名.erl)。
在Erlang程序文件中,用以下模块指令来命名模块,其形式如下:
-module(mname).
我们并不希望一个Erlang模块中的所有函数可以在模块外部随意调用,因为有的函数是不允许或不需要从模块外调用,所以模块中的函数在外部是不能随意调用的,只有在模块中被导出的函数才可以在外部被调用,导入指令形式如下:
-export([hw/0,...]).
其中,[hw/0]为所有被导出函数的列表,导出时用函数名和参数个数作为导出函数的依据,中间用“/”分隔。
然而,在模块的调试阶段,为了方便测试模块内部的函数功能,用export一个个导出又比较麻烦,这时可以使用模块指令compile一次导出所有函数:
-compile(export_all).
以下为一个简单程序文件(模块):
%filename: hw.erl
-module(hw).
-export([start/0]).
-compile(export_all).
start() ->
io:format("Hello World!~n").
二、Erlang程序文件运行
Erlang程序的运行一般需要两个步骤,即编译和运行。通过编译生成与程序文件的主文件名相同而扩展名为.beam的文件,然后就可以运行了。要运行Erlang程序,可以在Erlang的交互式命令行下或直接在命令行下编译后运行。
1.在交互式环境下编译与运行,其过程如下图:
注:
命令行1中调用cd()函数,切换当前目录至源程序的目录下。
命令行2中调用c()函数,对hw.erl文件进行编译。(此处出现了导出所有函数的警告)
命令行3中通过hw:start()调用了程序中的函数,显示出了程序的运行结果。
2.直接在命令提示符下编译和运行Erlang的程序文件
注:
命令行1使用erlc命令对程序文件进行编译,显示的警告信息和交互模式下相同。
命令行2使用erl命令来调用模块中的函数运行程序。其参数-noshell指示不启动交互式环境;-s hw start表示调用hw模块中的start函数;-s init stop是通过调用函数退出erlang运行环境。
以上是关于Erlang模块与Erlang程序的运行方法的主要内容,如果未能解决你的问题,请参考以下文章