我正在通过Erlang代码.
tes_lib:check_operational(Config)
Run Code Online (Sandbox Code Playgroud)
上面的代码存在于一个名为的模块中Sample.erl
.
我是这门语言的新手.我的问题是,我看不到任何包括模块声明tes_lib
在Sample.erl
.那么,如何来Sample.erl
能够调用该函数check_operational
使用tes_lib
模块?
我认为它应该像Java,我们首先导入类然后调用该函数.
在Erlang中,您无需"导入"模块即可调用它们.类似的调用tes_lib:check_operational(Config)
将在运行时解决.如果tes_lib
尚未加载模块,代码服务器将在加载路径中查找它,如果找不到模块,则调用将失败并显示undef
错误.
有是一个-import
Erlang中的指令,但它通常被认为是不好的风格来使用它.你可以写:
-import(tes_lib, [check_operational/1]).
Run Code Online (Sandbox Code Playgroud)
然后调用check_operational
就好像它是一个本地函数,而不指定模块名称.这些函数调用将在编译时由完全限定的调用替换.
从Erlang 编程规则:
不使用
-import
,使用它会使代码更难阅读,因为您无法直接查看函数定义的模块.使用exref
(交叉引用工具)查找模块依赖项.