當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。