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


Elixir Code.ensure_compiled用法及代码示例


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

用法:

ensure_compiled(module)
@spec ensure_compiled(module()) ::
  {:module, module()}
  | {:error, :embedded | :badfile | :nofile | :on_load_failure | :unavailable}

类似于 ensure_compiled!/1 ,但表示您可以在没有所述模块的情况下继续。

虽然 ensure_compiled!/1 向 Elixir 编译器表明您只能在所述模块可用时继续,但此函数表明您可以在没有所述模块的情况下继续编译。

如果成功加载模块,则返回 {:module, module} 。如果不是,则返回 {:error, reason} 以及错误原因。如果正在检查的模块当前处于编译器死锁状态,则此函数返回 {:error, :unavailable} 。不可用并不一定意味着该模块不存在,只是它当前不可用,但它(或可能不)将来可用。

因此,如果只有在模块可用时才能继续,请改用 ensure_compiled!/1 。特别是,不要这样做:

case Code.ensure_compiled(module) do
  {:module, _} -> module
  {:error, _} -> raise ...
end

有关代码加载的更多信息,请参阅模块文档。

相关用法


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