diff --git a/utils/basics.go b/utils/basics.go index 77e2b13..c3550ba 100644 --- a/utils/basics.go +++ b/utils/basics.go @@ -1,9 +1,48 @@ package utils +import "runtime" + // ForMap - 遍历数组,返回新数组 func ForMap[T any](slice []T, fun func(item T) (result T)) (newSlice []T) { for key, val := range slice { slice[key] = fun(val) } return slice +} + +// Ternary +// 三元运算符 +func Ternary[T any](IF bool, TRUE T, FALSE T) T { + if IF { + return TRUE + } + return FALSE +} + +func GetCaller() (funcName string, fileName string, line int) { + pc, fileName, line, ok := runtime.Caller(2) + if !ok { + return "", "", 0 + } + funcName = runtime.FuncForPC(pc).Name() + return funcName, fileName, line +} + +type caller struct { + // 文件名 + FileName string + // 函数名 + FuncName string + // 行号 + Line int +} + +// Caller 获取代码调用者 +func Caller() *caller { + funcName, fileName, line := GetCaller() + return &caller{ + FileName: fileName, + FuncName: funcName, + Line: line, + } } \ No newline at end of file diff --git a/utils/other.go b/utils/other.go index 59665d4..989e1ab 100644 --- a/utils/other.go +++ b/utils/other.go @@ -202,12 +202,3 @@ func InMapValue(value any, array map[string]string) bool { } return false } - -// Ternary -// 三元运算符 -func Ternary[T any](IF bool, TRUE T, FALSE T) T { - if IF { - return TRUE - } - return FALSE -}