Documentation
¶
Overview ¶
包gutil提供了实用函数。 md5:94ecbd62b7aa8e76
Index ¶
- func FillStructWithDefault(structPtr interface{}) error
- func Go(ctx context.Context, X协程函数 func(ctx context.Context), ...)
- func ItemValue(item interface{}, key interface{}) (value interface{}, found bool)
- func ListItemValues(list interface{}, key interface{}, subKey ...interface{}) (values []interface{})
- func ListItemValuesUnique(list interface{}, key string, subKey ...interface{}) []interface{}
- func ListToMapByKey(list []map[string]interface{}, key string) map[string]interface{}
- func Map删除名称s(Map值 map[string]interface{}, 名称s ...string)
- func Map删除所有空值(Map值 map[string]interface{})
- func Map到数组(Map值 interface{}) []interface{}
- func Map合并(Map值s ...map[string]interface{}) (新Map map[string]interface{})
- func Map合并到目标(目标 map[string]interface{}, 待合并s ...map[string]interface{})
- func Map是否包含(Map值 map[string]interface{}, 名称 string) (结果 bool)
- func Map是否包含并忽略大小写与符号(Map值 map[string]interface{}, 名称 string) bool
- func Map查找并忽略大小写与符号(Map值 map[string]interface{}, 名称 string) (找到名称 string, 找到值 interface{})
- func Map浅拷贝(Map值 map[string]interface{}) (新Map map[string]interface{})
- func X取值或取默认值(默认值 interface{}, 待判断变量 ...interface{}) interface{}
- func X取所有值(map或Struct interface{}) (值数组 []interface{})
- func X取所有名称(map或Struct interface{}) (键或属性 []string)
- func X取文本值或取默认值(默认值 string, 待判断变量 ...string) string
- func X异常捕捉(上下文 context.Context, 处理函数 func(上下文 context.Context)) (错误 error)
- func X异常捕捉并带异常处理(上下文 context.Context, 处理函数 func(上下文 context.Context), ...)
- func X异常输出(消息 interface{})
- func X数组删除成员(数组 []interface{}, 索引 int) (新数组 []interface{})
- func X数组到Map(数组 interface{}) map[string]interface{}
- func X数组到Map并按指定名称(数组 interface{}, 名称 interface{}) map[interface{}]interface{}
- func X数组插入前面(数组 []interface{}, 索引 int, 值s ...interface{}) (新数组 []interface{})
- func X数组插入后面(数组 []interface{}, 索引 int, 值s ...interface{}) (新数组 []interface{})
- func X数组浅拷贝(数组 []interface{}) []interface{}
- func X是否为空(值 interface{}) bool
- func X是否相等(值1, 值2 interface{}) bool
- func X比较字符(a, b interface{}) int
- func X比较字节(a, b interface{}) int
- func X比较小数32位(a, b interface{}) int
- func X比较小数64位(a, b interface{}) int
- func X比较整数(a, b interface{}) int
- func X比较整数16位(a, b interface{}) int
- func X比较整数32位(a, b interface{}) int
- func X比较整数64位(a, b interface{}) int
- func X比较整数8位(a, b interface{}) int
- func X比较文本(a, b interface{}) int
- func X比较时间(a, b interface{}) int
- func X比较正整数(a, b interface{}) int
- func X比较正整数16位(a, b interface{}) int
- func X比较正整数32位(a, b interface{}) int
- func X比较正整数64位(a, b interface{}) int
- func X比较正整数8位(a, b interface{}) int
- func X深拷贝(变量 interface{}) (新拷贝值 interface{})
- func X结构到数组(结构指针 interface{}) []interface{}
- func X调试输出(值s ...interface{})
- func X调试输出json(value any)
- func X调试输出到Writer(writer io.Writer, 值 interface{}, 选项 X结构_调试输出选项)
- func X调试输出并带类型(值s ...interface{})
- func X调试输出并带选项(值 interface{}, 选项 X结构_调试输出选项)
- type Comparator
- type OriginTypeAndKindOutput
- type OriginValueAndKindOutput
- type X结构_调试输出选项
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 ¶
ListToMapByKey 将 `list` 转换为一个键为 `key` 的 map[string]interface{}。注意,项的值可能为切片类型。 md5:6509753e629d5dc6
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是否包含并忽略大小写与符号 ¶
Map是否包含并忽略大小写与符号 检查给定的`key`是否包含在给定的映射`data`中。 它在检查键时忽略大小写和符号。
注意:此函数可能性能较低。 md5:f1b183430304dc85
func Map查找并忽略大小写与符号 ¶
Map查找并忽略大小写与符号 尝试根据给定键(忽略大小写和符号)找到可能的 key-value 对。
请注意,此函数的性能可能较低。 md5:4dd7c7511eb401cd
func Map浅拷贝 ¶
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取文本值或取默认值 ¶
X取文本值或取默认值 检查并返回值,根据参数`param`是否可用。 如果`param`可用,它返回`param[0]`,否则返回`def`。 md5:dca14c4157e86ece
func X异常捕捉 ¶
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比较整数64位 ¶
func X比较整数64位(a, b interface{}) int
X比较整数64位 提供了对int64类型的基本比较功能。 md5:0a827d5d4781dc3b
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深拷贝 ¶
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调试输出到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