elixir - Elixir 将模块的引用作为函数参数传递
问题描述
我对长生不老药/凤凰很陌生。我有这样的功能
defp get_list(old_result, filter) do
MY.Model.search_name(filter)
|> Enum.concat(old_result)
end
现在,为了使其更可重用,我想将 的引用传递Model
给函数,使其类似于:
defp get_list(old_result, filter, AnotherModel) do
MY.AnotherModel.search_name(filter)
|> Enum.concat(old_result)
end
但是当然上述功能不起作用。我怎样才能做到这一点?
解决方案
您可以将完整的模块名称作为普通参数传递,如下所示:
defmodule A do
def get_list(old_result, filter, some_module) do
filter
|> some_module.search_name
|> Enum.concat(old_result)
end
end
A.get_list(old_result, filter, MY.AnotherModule)
推荐阅读
- html - 当我向下滚动网页时,如何确保我的下拉图标永远不会离开它的位置?
- wordpress - 从块数组中渲染块 - 古腾堡
- r - 将字符操作应用于单行代码中的一个列表
- java - 默认 Maven Java 项目中的 ClassNotFoundException
- javascript - 在reduce函数中使用函数参数:Javascript
- .net-core - Ocelot 使用“DangerousAcceptAnyServerCertificateValidator”禁用 SSL 验证
- reactjs - 如何将时间显示为 HH:MM 格式?
- java - Java中对Map的线程安全获取/清除操作的选择
- python - Change bind address on hug API
- python - Python 大约 128 个 if 语句