Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macros Elixir:如何使用列表作为变量定义多个宏?_Macros_Elixir - Fatal编程技术网

Macros Elixir:如何使用列表作为变量定义多个宏?

Macros Elixir:如何使用列表作为变量定义多个宏?,macros,elixir,Macros,Elixir,我正试图用以下代码定义两个宏,但由于**(CompileError)iex:12:undefined function name/0而失败。 功能参数name不能在defmacro的do块中取消引用 这是什么原因? 有什么办法解决这个问题吗 (Elixir版本为1.2.5) 基本上需要取消引用两次,因为动态宏生成已经是一个隐式宏。您可以在defmacro的顶部添加以下行: name = unquote(name) name = unquote(name)

我正试图用以下代码定义两个宏,但由于
**(CompileError)iex:12:undefined function name/0
而失败。 功能参数
name
不能在
defmacro
的do块中取消引用

这是什么原因? 有什么办法解决这个问题吗

(Elixir版本为1.2.5)


基本上需要取消引用两次,因为动态宏生成已经是一个隐式宏。您可以在
defmacro
的顶部添加以下行:

name = unquote(name)
name = unquote(name)