我想检查一个输入参数是否为函数对象。 erlang模块的is_function
和fun_info
不正常,因为它们不会真正导出该模块的功能。
答案 0 :(得分:5)
我不确定我是否正确理解了您的问题,但如果您试图了解是否从某个模块导出某个函数,您可以使用erlang:function_exported/3函数:
如果模块Module已加载并包含导出,则返回true 功能/功能;否则是假的。
答案 1 :(得分:1)
要知道函数sort/2
是否由模块lists
导出,是否已加载(请参阅Convert a complex nested hash to an object),您可以使用:
lists:member({sort, 2}, lists:module_info(exports)).
如果您不介意Arity功能,可以使用:
case lists:keyfind(sort, 1, lists:module_info(exports)) of
{sort, _} -> true;
false -> false
end.
答案 2 :(得分:0)
模块:MODULE_INFO(出口)