Elixir語言中 Module.create
相關用法介紹如下。
用法:
create(module, quoted, opts)
@spec create(module(), Macro.t(), Macro.Env.t() | keyword()) ::
{:module, module(), binary(), term()}
創建具有給定名稱並由給定引用表達式定義的模塊。
定義模塊的行及其文件必須作為選項傳遞。
它返回一個形狀為 {:module, module, binary, term}
的元組,其中 module
是模塊名稱,binary
是模塊字節碼,term
是 quoted
中最後一個表達式的結果。
與
類似,如果在當前正在編譯的文件中調用 Kernel.defmodule/2
,二進製文件將僅作為 Module.create/3
.beam
文件寫入磁盤。
例子
contents =
quote do
def world, do: true
end
Module.create(Hello, contents, Macro.Env.location(__ENV__))
Hello.world()
#=> true
與defmodule
的區別
的工作方式與 Module.create/3
類似,並返回相同的結果。雖然也可以使用Kernel.defmodule/2
defmodule
來動態定義模塊,但當模塊主體由帶引號的表達式給出時,此函數是首選。
另一個重要區別是
允許您控製定義模塊時使用的環境變量,而Module.create/3
自動使用調用它的環境。Kernel.defmodule/2
相關用法
- Elixir Module.concat用法及代碼示例
- Elixir Module.defines?用法及代碼示例
- Elixir Module.delete_attribute用法及代碼示例
- Elixir Module.eval_quoted用法及代碼示例
- Elixir Module.put_attribute用法及代碼示例
- Elixir Module.split用法及代碼示例
- Elixir Module.overridables_in用法及代碼示例
- Elixir Module.definitions_in用法及代碼示例
- Elixir Module.has_attribute?用法及代碼示例
- Elixir Module.get_attribute用法及代碼示例
- Elixir Module.reserved_attributes用法及代碼示例
- Elixir Module.register_attribute用法及代碼示例
- Elixir Module.safe_concat用法及代碼示例
- Elixir Module.attributes_in用法及代碼示例
- Elixir Module用法及代碼示例
- Elixir Map.keys用法及代碼示例
- Elixir Map.values用法及代碼示例
- Elixir Map.update用法及代碼示例
- Elixir MapSet用法及代碼示例
- Elixir Map.split用法及代碼示例
- Elixir MapSet.intersection用法及代碼示例
- Elixir Map.put_new_lazy用法及代碼示例
- Elixir Map.drop用法及代碼示例
- Elixir Macro.Env.fetch_alias用法及代碼示例
- Elixir Map用法及代碼示例
注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Module.create(module, quoted, opts)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。