我正在创建一个动态执行函数的任务。这个函数每次都是不同的,参数数([1, "hi", :a])也不一样,所以我使用了Kernel.apply/2。
defp create_task(f, args) do
Task.async(fn -> apply(f, args) end)
end但是,我无法让它与私有函数(使用defp声明)一起工作:
create_task(&__MODULE__.my_private_fun/3, args)发布于 2018-10-30 22:24:58
如果要传递的函数是在模块中使用defp定义的,则无法从外部调用它。但是,如果它位于同一个模块中,您仍然可以调用它:
create_task(&my_private_fun/3, args)这里需要注意的是,您不必指定函数的独立性(没有宏),所以为什么不直接调用函数呢?
https://stackoverflow.com/questions/53073561
复制相似问题