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,你能看看我的宏吗? 我得到了未定义的函数号/0错误,我不知道为什么 defmodule DbUtil do defmacro __using__(opts) do quote do import unquote(__MODULE__) @before_compile unquote(__MODULE__) end end defmacro _

你能看看我的宏吗? 我得到了
未定义的函数号/0
错误,我不知道为什么

 defmodule DbUtil do
        defmacro __using__(opts) do
            quote do
              import unquote(__MODULE__)
              @before_compile unquote(__MODULE__)
            end
        end

        defmacro __before_compile__(%{module: definition} = _env) do

            quote do
                import Ecto.Query

                def last do
                    from x in unquote(definition), order_by: [desc: x.id], limit: 1
                end

                # This dumps error
                def limits(number) do
                    from a in unquote(definition), limit: ^unquote(number)
                end
            end

        end
    end

您不需要
取消报价
编号
<当您要在
quote
块外部插入变量时,使用code>unquote。由于
编号
是在
报价中定义的
,因此不需要
取消报价
。以下内容适用于您:

def limits(number) do
  from a in unquote(definition), limit: ^number
end

非常感谢你。不知道我怎么会错过。干杯