package utils import ( "reflect" "runtime" ) func GetFuncName(fn interface{}) string { ptr := reflect.ValueOf(fn).Pointer() return runtime.FuncForPC(ptr).Name() } func GetInterfaceName(obj interface{}) string { t := reflect.TypeOf(obj) if t.Kind() == reflect.Ptr { t = t.Elem() } return t.Name() }