nhẹ hơn và cũng không phụ thuộc vào định dạng stacktrace mà có thể thay đổi đôi khi, tôi muốn sử dụng process_info/2
:
{_, {Module, Function, Arity}} = process_info(self(), current_function)
Trong Function
bạn sẽ tìm thấy tên hàm như một nguyên tử và bạn sẽ có được Module
và số Arity
cũng vậy. Bạn không thể viết hàm này làm hàm vì nó sẽ trả về hàm này như hiện tại. Macro cung cấp cho bạn tên hàm hiện tại làm nguyên tử có thể trông giống như:
-define(current_function_name(),
element(2, element(2, process_info(self(), current_function)))).
foo() ->
foo = ?current_function_name().
Nguồn
2012-07-15 19:16:49
có thể trùng lặp của [Làm cách nào để lấy tên hàm?] (Http://stackoverflow.com/questions/4915339/how- -tên-hàm-của-một-chức năng) –