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
非常感谢你。不知道我怎么会错过。干杯