Elixir語言中 Module.eval_quoted
相關用法介紹如下。
用法:
eval_quoted(module_or_env, quoted, binding \\ [], opts \\ [])
@spec eval_quoted(
module() | Macro.Env.t(),
Macro.t(),
list(),
keyword() | Macro.Env.t()
) :: term()
評估給定模塊上下文中引用的內容。
環境選項列表也可以作為參數給出。有關詳細信息,請參閱
。Code.eval_string/3
如果模塊已經編譯,則引發錯誤。
例子
defmodule Foo do
contents =
quote do
def sum(a, b), do: a + b
end
Module.eval_quoted(__MODULE__, contents)
end
Foo.sum(1, 2)
#=> 3
為方便起見,您可以將任何
結構體(例如 Macro.Env
)作為第一個參數或選項傳遞。模塊和所有選項都將從環境中自動提取:__ENV__/0
defmodule Foo do
contents =
quote do
def sum(a, b), do: a + b
end
Module.eval_quoted(__ENV__, contents)
end
Foo.sum(1, 2)
#=> 3
請注意,如果您將
結構作為第一個參數傳遞,同時還傳遞 Macro.Env
opts
,它們將與具有優先權的 opts
合並。
相關用法
- Elixir Module.defines?用法及代碼示例
- Elixir Module.concat用法及代碼示例
- Elixir Module.delete_attribute用法及代碼示例
- 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.create用法及代碼示例
- 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.eval_quoted(module_or_env, quoted, binding \\ [], opts \\ [])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。