Golang 函数获取调用者名称:打印父函数名
在Golang中,可以使用`runtime`包中的`Caller`函数来获取当前函数的调用栈信息。然后通过`runtime.FuncForPC`函数可以获取到函数的名称。\n\n以下是一个示例代码:\n\ngo\npackage main\n\nimport (\n\t"fmt"\n\t"runtime"\n)\n\nfunc main() {\n\tsubFunc()\n}\n\nfunc subFunc() {\n\tfmt.Println(getCallerFuncName())\n}\n\nfunc getCallerFuncName() string {\n\tpc, _, _, _ := runtime.Caller(1)\n\tfunction := runtime.FuncForPC(pc)\n\treturn function.Name()\n}\n\n\n在上面的示例中,`getCallerFuncName`函数使用了`runtime.Caller`和`runtime.FuncForPC`函数来获取调用者的函数名称。然后在`subFunc`函数中调用`getCallerFuncName`函数来打印父函数的名称。\n\n运行上述代码,输出结果为:\n\n\nmain.subFunc\n\n\n表示`subFunc`函数是由`main`函数调用的。
原文地址: https://www.cveoy.top/t/topic/pNHS 著作权归作者所有。请勿转载和采集!