Elixir語言中 Code.eval_quoted
相關用法介紹如下。
用法:
eval_quoted(quoted, binding \\ [], opts \\ [])
@spec eval_quoted(Macro.t(), binding(), Macro.Env.t() | keyword()) ::
{term(), binding()}
評估引用的內容。
警告:在宏中調用此函數被認為是不好的做法,因為它將嘗試在編譯時評估運行時值。宏參數通常通過將它們取消引用轉換為返回的帶引號的表達式(而不是評估)。
有關 binding
和 opts
的說明,請參見
。eval_string/3
例子
iex> contents = quote(do: var!(a) + var!(b))
iex> {result, binding} = Code.eval_quoted(contents, [a: 1, b: 2], file: __ENV__.file, line: __ENV__.line)
iex> result
3
iex> Enum.sort(binding)
[a: 1, b: 2]
為方便起見,您可以將
作為 __ENV__/0
opts
參數傳遞,所有選項都將從當前環境中自動提取:
iex> contents = quote(do: var!(a) + var!(b))
iex> {result, binding} = Code.eval_quoted(contents, [a: 1, b: 2], __ENV__)
iex> result
3
iex> Enum.sort(binding)
[a: 1, b: 2]
相關用法
- Elixir Code.eval_string用法及代碼示例
- Elixir Code.ensure_compiled用法及代碼示例
- Elixir Code.ensure_loaded?用法及代碼示例
- Elixir Code.ensure_loaded用法及代碼示例
- Elixir Code.prepend_path用法及代碼示例
- Elixir Code.compiler_options用法及代碼示例
- Elixir Code.quoted_to_algebra用法及代碼示例
- Elixir Code.put_compiler_option用法及代碼示例
- Elixir Code.format_string!用法及代碼示例
- Elixir Code.required_files用法及代碼示例
- Elixir Code.get_compiler_option用法及代碼示例
- Elixir Code.Fragment.cursor_context用法及代碼示例
- Elixir Code.available_compiler_options用法及代碼示例
- Elixir Code.require_file用法及代碼示例
- Elixir Code.Fragment.container_cursor_to_quoted用法及代碼示例
- Elixir Code.Fragment.surround_context用法及代碼示例
- Elixir Code.delete_path用法及代碼示例
- Elixir Code.append_path用法及代碼示例
- Elixir Code.unrequire_files用法及代碼示例
- Elixir Code.fetch_docs用法及代碼示例
- Elixir Code.string_to_quoted_with_comments用法及代碼示例
- Elixir Code用法及代碼示例
- Elixir Config.config_env用法及代碼示例
- Elixir Config.config用法及代碼示例
- Elixir Config.Reader用法及代碼示例
注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Code.eval_quoted(quoted, binding \\ [], opts \\ [])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。