2016-11-25 32 views

回答

0

旁註:應該沒有任何理由查詢當前函數名。在紅寶石中,我們有__callee__,這很方便區分別名,,除非在2.3,中破壞,但__method__本身沒有多大意義。

無論如何,一個可能使用:erlang.process_info/2

{:current_function, {module, function, arity}} = \ 
     :erlang.process_info(:erlang.self(), :current_function) 

例子:

defmodule A, do: def a, do: :erlang.process_info(:erlang.self(), :current_function) 
A.a 
#⇒ {:current_function, {A, :a, 0}}