【发布时间】:2014-10-30 21:49:42
【问题描述】:
是否可以重命名现有的 Erlang 模块?我想在 Elixir 项目(断言库)中使用几个 Erlang 模块中的一些代码。
我不想将所有 Erlang 模块都转换为 Elixir,因为它们是完整的,但我想重命名它们,并可能向它们添加额外的功能。这两个模块都是简单的函数集合,它们不实现行为或做任何不寻常的事情。
我希望能够采用现有的 Erlang 模块:
-module(foo_erl).
-export([some_fun/1]).
some_fun(Arg) ->
ok.
并编写一个 Elixir 模块来扩展 Erlang 模块:
defmodule ExFoo do
somehow_extends_erlang_module :foo_erl
another_fun(arg) do
:ok
end
end
然后就可以使用Erlang模块中定义的函数了:
iex(1)> ExFoo.some_fun(:arg) #=> :ok
这可以在 Elixir 中实现吗?如果是这样,我该怎么做?
【问题讨论】: