代码拉取完成,页面将自动刷新
package kk_reflect
import (
"log/slog"
"reflect"
"runtime"
"strings"
)
// GetFunctionName make sure use this only for test or a dynamic function
// do not use this in production code
func GetFunctionName(function any, getFullName ...bool) string {
fullFuncName := runtime.FuncForPC(reflect.ValueOf(function).Pointer()).Name()
if len(getFullName) > 0 && getFullName[0] {
return fullFuncName
}
splitFuncName := strings.Split(fullFuncName, ".")
funcName := splitFuncName[len(splitFuncName)-1]
return funcName
}
// GetCurrentFunctionName make sure use this only for test or a dynamic function
// do not use this in production code
func GetCurrentFunctionName(getFullName ...bool) string {
pc, _, _, ok := runtime.Caller(1)
if !ok {
slog.Error("GetCurrentFunctionName error")
return ""
}
fullFuncName := runtime.FuncForPC(pc).Name()
if len(getFullName) > 0 && getFullName[0] {
return fullFuncName
}
splitFuncName := strings.Split(fullFuncName, ".")
funcName := splitFuncName[len(splitFuncName)-1]
return funcName
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。