Erlang:包括模块和调用函数

Joh*_*mbo 3 erlang module

我正在通过Erlang代码.

tes_lib:check_operational(Config)
Run Code Online (Sandbox Code Playgroud)

上面的代码存在于一个名为的模块中Sample.erl.

我是这门语言的新手.我的问题是,我看不到任何包括模块声明tes_libSample.erl.那么,如何来Sample.erl能够调用该函数check_operational使用tes_lib模块?

我认为它应该像Java,我们首先导入类然后调用该函数.

leg*_*cia 7

在Erlang中,您无需"导入"模块即可调用它们.类似的调用tes_lib:check_operational(Config)将在运行时解决.如果tes_lib尚未加载模块,代码服务器将在加载路径中查找它,如果找不到模块,则调用将失败并显示undef错误.


一个-importErlang中的指令,但它通常被认为是不好的风格来使用它.你可以写:

-import(tes_lib, [check_operational/1]).
Run Code Online (Sandbox Code Playgroud)

然后调用check_operational就好像它是一个本地函数,而不指定模块名称.这些函数调用将在编译时由完全限定的调用替换.

从Erlang 编程规则:

不使用-import,使用它会使代码更难阅读,因为您无法直接查看函数定义的模块.使用exref(交叉引用工具)查找模块依赖项.