如何检查函数对象是否有效

Che*_* Yu 2 erlang

我想检查一个输入参数是否为函数对象.erlang模块is_functionfun_info没有问题,因为它们不是真正由模块导出的功能.

Rob*_*loi 5

我不确定我是否正确理解了您的问题,但是如果您试图了解是否从给定模块导出函数,则可以使用erlang:function_exported/3函数:

如果模块Module已加载并包含导出的函数Function/Arity,则返回true; 否则是假的.

  • `erlang:function_exported/3`不是最佳选择,因为如果未加载模块,它将返回`false`,即使导出了特定的函数.其他答案所建议的`module_info`可能更好(模块`代码`也包含一些其他选择). (2认同)