我想检查一个输入参数是否为函数对象。erlang 模块的is_functionandfun_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   回答