当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir Code.require_file用法及代码示例


Elixir语言中 Code.require_file 相关用法介绍如下。

用法:

require_file(file, relative_to \\ nil)
@spec require_file(binary(), nil | binary()) :: [{module(), binary()}] | nil

需要给定的 file

接受 relative_to 作为参数来判断文件的位置。如果已经需要该文件,则 require_file/2 不执行任何操作并返回 nil

请注意,如果不同进程同时调用 require_file/2 ,则调用 require_file/2 的第一个进程将获得锁,其余进程将阻塞,直到文件可用。这意味着如果对给定文件多次调用 require_file/2 ,则该文件将只编译一次。第一个调用 require_file/2 的进程将获得已加载模块的列表,其他进程将获得 nil

如果您想在不跟踪文件名的情况下编译文件,请参阅 compile_file/2 。最后,如果您想获得评估文件而不是其中定义的模块的结果,请参阅 eval_file/2

例子

如果不需要该文件,则返回模块列表:

modules = Code.require_file("eex_test.exs", "../eex/test")
List.first(modules)
#=> {EExTest.Compiled, <<70, 79, 82, 49, ...>>}

如果需要该文件,则返回 nil

Code.require_file("eex_test.exs", "../eex/test")
#=> nil

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Code.require_file(file, relative_to \\ nil)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。