工具类

package
v0.0.0-...-782a3f7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 21, 2024 License: MIT Imports: 16 Imported by: 1

Documentation

Overview

包gutil提供了实用函数。 md5:94ecbd62b7aa8e76

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FillStructWithDefault

func FillStructWithDefault(structPtr interface{}) error

FillStructWithDefault 使用`default/d`标签的值填充指向的结构体的属性。参数`structPtr`应该是`*struct`或`[]*struct`类型的一种。 md5:5777fe6fdb6efa8a

func Go

func Go(
	ctx context.Context,
	X协程函数 func(ctx context.Context),
	X异常处理函数 func(ctx context.Context, exception error),
)

Go 创建一个新的异步 goroutine 函数,并指定了恢复函数。

参数 `recoverFunc` 在 `goroutineFunc` 执行过程中发生任何 panic 时被调用。 如果 `recoverFunc` 为 nil,它将忽略 `goroutineFunc` 中的 panic,且不会向父 goroutine 抛出 panic。

但是要注意,如果 `recoverFunc` 自身也抛出 panic,这个 panic 将会被抛给父 goroutine。 md5:3820395064a9e843

func ItemValue

func ItemValue(item interface{}, key interface{}) (value interface{}, found bool)

ItemValue 获取并返回由`key`指定的名称/属性的值。 参数`item`可以是地图(map)、指针地图(*map)、结构体(struct)或指针结构体(*struct)类型。 md5:ca5bcda09a11157b

func ListItemValues

func ListItemValues(list interface{}, key interface{}, subKey ...interface{}) (values []interface{})

ListItemValues 从所有元素为映射或结构体的切片(list)中,根据给定的键(key)获取并返回对应的值。 注意,参数 list 应该是包含 map 或结构体元素的切片,否则将返回一个空切片。

参数 list 支持的类型包括: []map[string]interface{} []map[string]子映射 []struct []struct:子结构体 如果提供了可选参数 `subKey`,子映射/子结构体才有意义。 md5:9523dac525318de2

func ListItemValuesUnique

func ListItemValuesUnique(list interface{}, key string, subKey ...interface{}) []interface{}

ListItemValuesUnique 获取并返回具有键为`key`的所有结构体/映射的独特元素。 请注意,参数`list`应为包含映射或结构体元素的切片类型,否则将返回一个空切片。 md5:0f361d3ff901d0a1

func ListToMapByKey

func ListToMapByKey(list []map[string]interface{}, key string) map[string]interface{}

ListToMapByKey 将 `list` 转换为一个键为 `key` 的 map[string]interface{}。注意,项的值可能为切片类型。 md5:6509753e629d5dc6

func Map删除名称s

func Map删除名称s(Map值 map[string]interface{}, 名称s ...string)

Map删除名称s 从 map `data` 中删除所有 `keys`。 md5:3e89d2fe52825284

func Map删除所有空值

func Map删除所有空值(Map值 map[string]interface{})

Map删除所有空值 从给定的映射中删除所有空值。 md5:9e670086c7ddbc0e

func Map到数组

func Map到数组(Map值 interface{}) []interface{}

Map到数组 将映射转换为包含所有键和值的切片。 例如:{"K1": "v1", "K2": "v2"} => ["K1", "v1", "K2", "v2"] md5:bf557c548edfb4a6

func Map合并

func Map合并(Map值s ...map[string]interface{}) (新Map map[string]interface{})

Map合并 创建并返回一个新地图,该地图合并了来自 `src` 的所有地图。 md5:b880aa85a1899404

func Map合并到目标

func Map合并到目标(目标 map[string]interface{}, 待合并s ...map[string]interface{})

Map合并到目标 将源(src)映射中的所有映射合并到目标(dst)映射中。 md5:aa4647e55af49733

func Map是否包含

func Map是否包含(Map值 map[string]interface{}, 名称 string) (结果 bool)

Map是否包含 检查映射数据 `data` 是否包含键 `key`。 md5:be6a3dd5c1d28037

func Map是否包含并忽略大小写与符号

func Map是否包含并忽略大小写与符号(Map值 map[string]interface{}, 名称 string) bool

Map是否包含并忽略大小写与符号 检查给定的`key`是否包含在给定的映射`data`中。 它在检查键时忽略大小写和符号。

注意:此函数可能性能较低。 md5:f1b183430304dc85

func Map查找并忽略大小写与符号

func Map查找并忽略大小写与符号(Map值 map[string]interface{}, 名称 string) (找到名称 string, 找到值 interface{})

Map查找并忽略大小写与符号 尝试根据给定键(忽略大小写和符号)找到可能的 key-value 对。

请注意,此函数的性能可能较低。 md5:4dd7c7511eb401cd

func Map浅拷贝

func Map浅拷贝(Map值 map[string]interface{}) (新Map map[string]interface{})

Map浅拷贝 对于最常用的映射类型map[string]interface{},执行从数据映射`data`到`copy`的浅复制。 md5:f29e782d6173a097

func X取值或取默认值

func X取值或取默认值(默认值 interface{}, 待判断变量 ...interface{}) interface{}

X取值或取默认值 检查并根据参数 `param` 是否存在返回值。 如果 `param` 可用,它将返回 `param[0]`,否则返回 `def`。 md5:19ff7265ff047831

func X取所有值

func X取所有值(map或Struct interface{}) (值数组 []interface{})

X取所有值 从给定的映射或结构体中检索并返回值。 md5:e03f3d848bc2ef9a

func X取所有名称

func X取所有名称(map或Struct interface{}) (键或属性 []string)

X取所有名称 从给定的映射或结构体中检索并返回键。 md5:90c2f70b36eaef9e

func X取文本值或取默认值

func X取文本值或取默认值(默认值 string, 待判断变量 ...string) string

X取文本值或取默认值 检查并返回值,根据参数`param`是否可用。 如果`param`可用,它返回`param[0]`,否则返回`def`。 md5:dca14c4157e86ece

func X异常捕捉

func X异常捕捉(上下文 context.Context, 处理函数 func(上下文 context.Context)) (错误 error)

X异常捕捉 使用内部的 panic...recover 实现 try...catch 逻辑。如果发生任何异常,它会返回错误;否则返回 nil。 md5:7c85aa857bb16fca

func X异常捕捉并带异常处理

func X异常捕捉并带异常处理(上下文 context.Context, 处理函数 func(上下文 context.Context), 异常处理函数 func(上下文 context.Context, 错误 error))

X异常捕捉并带异常处理 实现了类似于 `try...catch...` 的异常处理机制,利用内部的 `panic...recover` 逻辑。 当在 `try` 块中发生任何异常时,它会自动调用函数 `catch` 并将异常传递给错误参数。 如果 `catch` 函数为 nil,则忽略 `try` 中的 panic,不会向父 goroutine 抛出 panic。

但是,需要注意的是,如果 `catch` 函数自身也抛出 panic,当前 goroutine 将会 panic。 md5:6cbe568aa0940b07

func X异常输出

func X异常输出(消息 interface{})

X异常输出 抛出一个异常,这个异常可以被 TryCatch 结构或 recover 语句捕获。 md5:44e69b1d2fded57f

func X数组删除成员

func X数组删除成员(数组 []interface{}, 索引 int) (新数组 []interface{})

X数组删除成员 从索引 `index` 处删除一个元素,并返回新的切片。如果给定的 `index` 不有效,它不会做任何操作。 md5:f57a8afe207e8169

func X数组到Map

func X数组到Map(数组 interface{}) map[string]interface{}

X数组到Map 将切片类型变量 `slice` 转换为 `map[string]interface{}` 类型。注意,如果 `slice` 的长度不是偶数,它将返回nil。 例如: ["K1", "v1", "K2", "v2"] => {"K1": "v1", "K2": "v2"} ["K1", "v1", "K2"] => nil md5:f7b4384607d6bfbe

func X数组到Map并按指定名称

func X数组到Map并按指定名称(数组 interface{}, 名称 interface{}) map[interface{}]interface{}

X数组到Map并按指定名称 将切片类型变量 `slice` 转换为 `map[interface{}]interface{}` 切片中指定列的值将作为返回映射的键。 例如: X数组到Map并按指定名称([{"K1": "v1", "K2": 1}, {"K1": "v2", "K2": 2}], "K1") => {"v1": {"K1": "v1", "K2": 1}, "v2": {"K1": "v2", "K2": 2}} X数组到Map并按指定名称([{"K1": "v1", "K2": 1}, {"K1": "v2", "K2": 2}], "K2") => {1: {"K1": "v1", "K2": 1}, 2: {"K1": "v2", "K2": 2}} md5:bf178f79b93bd1b2

func X数组插入前面

func X数组插入前面(数组 []interface{}, 索引 int, 值s ...interface{}) (新数组 []interface{})

X数组插入前面 将 `values` 插入到 `index` 位置的前面,并返回一个新的切片。 md5:d1cbe1d61df82fb6

func X数组插入后面

func X数组插入后面(数组 []interface{}, 索引 int, 值s ...interface{}) (新数组 []interface{})

X数组插入后面 在 `index` 后方插入 `values`,并返回一个新的切片。 md5:bb561266d0b2b921

func X数组浅拷贝

func X数组浅拷贝(数组 []interface{}) []interface{}

X数组浅拷贝 对于最常用的切片类型([]interface{})执行浅拷贝操作。 md5:d119afb140e8324a

func X是否为空

func X是否为空(值 interface{}) bool

X是否为空 检查给定的 `value` 是否为空。 如果 `value` 为以下情况,返回 false:整数0,bool 值 false,长度为0的切片/映射,或 nil; 否则,返回 true。 md5:8e21f87627e70ce3

func X是否相等

func X是否相等(值1, 值2 interface{}) bool

X是否相等 检查"value"和"valueInExpectType"的类型是否相等,并返回结果。 md5:e1d0bdccffd973a1

func X比较字符

func X比较字符(a, b interface{}) int

X比较字符 提供了一个基本的 rune 对比功能。 md5:e30baf0412d73c95

func X比较字节

func X比较字节(a, b interface{}) int

X比较字节 在字节上提供基本的比较功能。 md5:74dad260972241f7

func X比较小数32位

func X比较小数32位(a, b interface{}) int

X比较小数32位 提供对float32的基本比较。 md5:5f3a1a46408ed33d

func X比较小数64位

func X比较小数64位(a, b interface{}) int

X比较小数64位 提供对float64的基本比较。 md5:15afd5d88c222774

func X比较整数

func X比较整数(a, b interface{}) int

X比较整数 在int类型上提供基本的比较功能。 md5:c8660a6b9a98a8f5

func X比较整数16位

func X比较整数16位(a, b interface{}) int

X比较整数16位 提供对 int16 的基本比较。 md5:9cf435a64f01ae86

func X比较整数32位

func X比较整数32位(a, b interface{}) int

X比较整数32位 提供对 int32 的基本比较。 md5:b491ec4c9c46cfde

func X比较整数64位

func X比较整数64位(a, b interface{}) int

X比较整数64位 提供了对int64类型的基本比较功能。 md5:0a827d5d4781dc3b

func X比较整数8位

func X比较整数8位(a, b interface{}) int

X比较整数8位 提供了对int8的基本比较操作。 md5:b727bd550fef2616

func X比较文本

func X比较文本(a, b interface{}) int

X比较文本 提供了一个快速的字符串比较功能。 md5:d0e6023eaf1cf6f5

func X比较时间

func X比较时间(a, b interface{}) int

X比较时间 提供了对time.Time的基本比较。 md5:58d0e4c6e29cff00

func X比较正整数

func X比较正整数(a, b interface{}) int

X比较正整数 提供了一个基础的无符号整数比较功能。 md5:a11699413547d752

func X比较正整数16位

func X比较正整数16位(a, b interface{}) int

X比较正整数16位 提供对 uint16 的基本比较。 md5:74670078ce1de876

func X比较正整数32位

func X比较正整数32位(a, b interface{}) int

X比较正整数32位 在uint32类型上提供基本的比较功能。 md5:f08e9a1b63d90f06

func X比较正整数64位

func X比较正整数64位(a, b interface{}) int

X比较正整数64位 提供了对 uint64 类型的基本比较功能。 md5:e08126378b4b83b9

func X比较正整数8位

func X比较正整数8位(a, b interface{}) int

X比较正整数8位 提供uint8的基本比较。 md5:5f83ec701ceeb5c2

func X深拷贝

func X深拷贝(变量 interface{}) (新拷贝值 interface{})

X深拷贝 返回 v 的深拷贝。

X深拷贝 无法复制结构体中的未导出字段(小写字段名)。未导出字段不能被 Go 运行时反射,因此无法进行任何数据拷贝。 md5:3460c0a1329d334a

func X结构到数组

func X结构到数组(结构指针 interface{}) []interface{}

X结构到数组 将结构体转换为一个键值对作为元素的切片。 例如:{"K1": "v1", "K2": "v2"} => ["K1", "v1", "K2", "v2"] md5:ca8c34ec711fb0de

func X调试输出

func X调试输出(值s ...interface{})

X调试输出 将变量 `values` 打印到标准输出,以更人工可读的方式。 md5:05206ddf9d48510d

func X调试输出json

func X调试输出json(value any)

X调试输出json 将 JSON 内容以美化的方式输出到标准输出。 md5:9f4c95e099395360

func X调试输出到Writer

func X调试输出到Writer(writer io.Writer, 值 interface{}, 选项 X结构_调试输出选项)

X调试输出到Writer 将变量 `values` 作为字符串写入到 `writer` 中,提供更易人工阅读的格式. md5:68fd8fc9ea0dfc4b

func X调试输出并带类型

func X调试输出并带类型(值s ...interface{})

X调试输出并带类型 类似于 Dump,但带有类型信息。同时参阅 Dump。 md5:faabab79589d38a3

func X调试输出并带选项

func X调试输出并带选项(值 interface{}, 选项 X结构_调试输出选项)

X调试输出并带选项 函数将变量 `values` 以更易于人工阅读的字符串形式返回。 md5:99fec3f0f209dcf7

Types

type Comparator

type Comparator func(a, b interface{}) int

Comparator 是一个函数,用于比较 a 和 b,并返回一个整数结果。

应该返回以下数值:

如果 a < b,则返回负数 如果 a == b,则返回零 如果 a > b,则返回正数 md5:c1e00d03f187b96f

type OriginTypeAndKindOutput

type OriginTypeAndKindOutput = reflection.OriginTypeAndKindOutput

func X反射取原始类型和种类

func X反射取原始类型和种类(值 interface{}) (out OriginTypeAndKindOutput)

X反射取原始类型和种类 获取并返回原始反射类型和种类。 md5:ee62836f1445e493

type OriginValueAndKindOutput

type OriginValueAndKindOutput = reflection.OriginValueAndKindOutput

func X反射取原始值和种类

func X反射取原始值和种类(值 interface{}) (out OriginValueAndKindOutput)

X反射取原始值和种类 获取并返回原始的反射值和类型。 md5:e2cdf5d39aa2b981

type X结构_调试输出选项

type X结构_调试输出选项 struct {
	WithType     bool // WithType 指定以包含类型信息的方式转储内容。 md5:f0b7a9863381d552
	ExportedOnly bool // 只导出结构体的Exported字段。 md5:b19bd21abecb4c21
}

X结构_调试输出选项 指定了 Export 函数的行为。 md5:2a73bcd0ce073910

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL