如何在Elixir中使用monkeypatch模块功能

Jos*_*itt 4 elixir

我有一个Elixir模块,可以导入一些函数.我想用自己的功能对其中一个功能进行monkeypatch.那可能吗?我该怎么做?

更新示例

我的具体示例是,对于任务Mix.Tasks.Deps.Compile,我想在'compile'函数中添加一些功能.

https://github.com/elixir-lang/elixir/blob/master/lib/mix/lib/mix/tasks/deps.compile.ex

Mix.Tasks.Deps.Compile模块在Mix框架中已经深深扎根.我想进行最小的更改,同时添加我想要的额外功能.我想要添加的功能是cond do块的另一个条件.

mic*_*ala 9

简单的答案是:你做不到.在BEAM上没有猴子修补的概念.

更长的答案是BEAM中的模块是延迟加载的,因此您可以用自己的实现替换模块(但是整个模块,而不仅仅是单个函数).但我真的不确定这是正确的方法.