有人可以为defdelegate
提供一个简单的例子。我找不到任何东西,让人难以理解。
defmodule Dummy do
def hello, do: "hello from dummy"
end
我得到undefined function world/0
以下内容:
defmodule Other do
defdelegate hello, to: Dummy, as: world
end
我想将Other.world
委托给Dummy.hello
答案 0 :(得分:19)
两件事:
你得到了名字而as:
错了。 as:
应该包含目标模块中函数的名称,第一个参数应该是当前模块中要定义的名称。
as
的参数必须是原子。
最终工作代码:
defmodule Dummy do
def hello, do: "hello from dummy"
end
defmodule Other do
defdelegate world, to: Dummy, as: :hello
end
IO.puts Other.world
输出:
hello from dummy