Module Erlang:包含模块和调用函数
我正在浏览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
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
(交叉引用工具)查找模块依赖项