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