mirror of
https://github.com/unti-io/go-utils.git
synced 2025-10-08 17:50:06 +08:00
v1.0.9
v1.0.9
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
package utils
|
package utils
|
||||||
|
|
||||||
|
import "runtime"
|
||||||
|
|
||||||
// ForMap - 遍历数组,返回新数组
|
// ForMap - 遍历数组,返回新数组
|
||||||
func ForMap[T any](slice []T, fun func(item T) (result T)) (newSlice []T) {
|
func ForMap[T any](slice []T, fun func(item T) (result T)) (newSlice []T) {
|
||||||
for key, val := range slice {
|
for key, val := range slice {
|
||||||
@@ -7,3 +9,40 @@ func ForMap[T any](slice []T, fun func(item T) (result T)) (newSlice []T) {
|
|||||||
}
|
}
|
||||||
return slice
|
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,
|
||||||
|
}
|
||||||
|
}
|
@@ -202,12 +202,3 @@ func InMapValue(value any, array map[string]string) bool {
|
|||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ternary
|
|
||||||
// 三元运算符
|
|
||||||
func Ternary[T any](IF bool, TRUE T, FALSE T) T {
|
|
||||||
if IF {
|
|
||||||
return TRUE
|
|
||||||
}
|
|
||||||
return FALSE
|
|
||||||
}
|
|
||||||
|
Reference in New Issue
Block a user