我想检查一个输入参数是否为函数对象。erlang 模块的is_function
andfun_info
不行,因为它们不知道该功能是否真的由模块导出。
问问题
2451 次
3 回答
5
我不确定我是否正确理解了您的问题,但如果您想了解是否从给定模块导出函数,您可以使用erlang:function_exported/3函数:
如果模块 Module 已加载并包含导出的函数 Function/Arity,则返回 true;否则为假。
于 2012-04-23T10:21:29.157 回答
1
要知道一个函数sort/2
是否由模块导出lists
,是否已加载(请参阅Amiramix 注释),您可以使用:
lists:member({sort, 2}, lists:module_info(exports)).
如果您不介意 Arity 功能,可以使用:
case lists:keyfind(sort, 1, lists:module_info(exports)) of
{sort, _} -> true;
false -> false
end.
于 2017-08-24T02:23:36.177 回答
0
模块:module_info(出口)
于 2012-04-23T10:23:34.093 回答