Erlang:包括模块和调用函数

时间:2016-03-18 18:27:38

标签: module erlang

我正在浏览Erlang代码。

tes_lib:check_operational(Config)

上述代码存在于名为Sample.erl的模块中。

我是这门语言的新手。我的问题是我在tes_lib中看不到模块Sample.erl的任何包含声明。那么,Sample.erl如何使用check_operational模块调用函数tes_lib

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

1 个答案:

答案 0 :(得分:7)

在Erlang中,您不需要"导入"模块,以便能够调用它们。像tes_lib:check_operational(Config)这样的调用将在运行时解析。如果尚未加载tes_lib模块,代码服务器将在加载路径中查找它,如果找不到该模块,则调用将失败并显示{{1错误。

在Erlang中 是一个undef指令,但它通常被认为是使用它的不良风格。你可以写:

-import

然后调用-import(tes_lib, [check_operational/1]). ,就像它是本地函数一样,没有指定模块名称。这些函数调用将在编译时被完全限定的调用替换。

来自Erlang Programming Rules

  

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