[英]Macros in elixir
我是元編程的新手。 我有一個像這樣的模塊
defmodule transport do
use Qber.Web, :status
some[some_option]
end
在我的web.ex
。 我已經定義了這種status
:
def status do
quote do
use Qber.Status
end
end
這是我的狀態模塊
defmodule Qber.Status do
@moduledoc """
"""
defmacro __using__(_options) do
quote do
code
end
end
defmacro some(options) do
quote do
options = unquote options
IO.inspect options
end
end
end
當我使用Qber.Web,:status.its時,它工作正常,但我也想將值從some
發送到狀態模塊中的宏,這給了傳輸中some
未定義的錯誤。 我怎樣才能做到這一點?
在沒有更多上下文的情況下,很難說出您到底要做什么。
但是, use
不導入函數或宏,請嘗試添加import
:
defmodule Qber.Status do
defmacro __using__(_options) do
quote do
import Qber.Status
code
end
end
defmacro some(options) do
quote do
options = unquote options
IO.inspect options
end
end
end
另外,值得重復José在評論中所說的話 :
最好指出要解決的問題,因為元編程很少能解決這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.