Module Erlang:包含模块和调用函数

Module Erlang:包含模块和调用函数,module,erlang,Module,Erlang,我正在浏览Erlang代码 tes_lib:check_operational(Config) 上述代码存在于名为Sample.erl的模块中 我不熟悉这种语言。我的问题是在Sample.erl中看不到模块tes_lib的include语句。那么,为什么Sample.erl能够使用tes\u lib模块调用函数check\u operational 我认为它应该像Java一样,首先导入类,然后调用函数。在Erlang中,不需要“导入”模块就可以调用它们。类似于tes\u lib:check\u

我正在浏览Erlang代码

tes_lib:check_operational(Config)
上述代码存在于名为
Sample.erl
的模块中

我不熟悉这种语言。我的问题是在
Sample.erl
中看不到模块
tes_lib
的include语句。那么,为什么
Sample.erl
能够使用
tes\u lib
模块调用函数
check\u operational


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

在Erlang中,不需要“导入”模块就可以调用它们。类似于
tes\u lib:check\u operational(Config)
的调用将在运行时解决。如果
tes_lib
模块尚未加载,代码服务器将在加载路径中查找它,如果找不到模块,调用将失败,并出现
undef
错误


Erlang中有一个
-import
指令,但使用它通常被认为是不好的风格。你可以写:

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

从Erlang:

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