5
我可以在运行时找到当前函数的名称吗?Erlang - 如何在运行时找到当前函数的名称?
foo() ->
foo = find_function_name().
是否有可能写的乐趣find_function_name/0? 你会怎么做?它已经存在吗?
我可以在运行时找到当前函数的名称吗?Erlang - 如何在运行时找到当前函数的名称?
foo() ->
foo = find_function_name().
是否有可能写的乐趣find_function_name/0? 你会怎么做?它已经存在吗?
更加轻便,也不会具体取决于哪个偶尔会发生变化的堆栈跟踪的格式,我宁愿使用process_info/2
:
在Function
你会发现函数名作为一个原子,你会得到Module
还有Arity
也。你不能把它写成函数,因为它只是将当前的函数返回。 ,让你当前的函数名作为原子宏可能看起来像:
-define(current_function_name(),
element(2, element(2, process_info(self(), current_function)))).
foo() ->
foo = ?current_function_name().
的可能重复[?如何获得一个函数名(http://stackoverflow.com/questions/4915339/how-对获得最名称的-A-功能) – 2011-12-14 13:40:25