我想在我的escript代码中使用Elixir 1.6的Code.format_string!/2
。为了兼容不同的Elixir版本,我计划使用function_exported?/3
来查看用户环境中是否支持format_string。但我发现它不能按预期工作。它始终在Macbook中返回false
(Elixir为1.6),但它可以正常调用。
我创建了一个演示来描述这个问题:
答案 0 :(得分:5)
function_exported?/3
假设模块已经加载到内存中。你可能想这样做:
if Code.ensure_loaded?(Code) and function_exported?(Code, :format_string!, 2) do
...