toolkit

package
v0.0.0-...-018d782 Latest Latest
Warning

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

Go to latest
Published: Dec 30, 2024 License: Apache-2.0 Imports: 11 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Bean2Map

func Bean2Map(structVal any, forceConvFields ...string) map[string]any

Bean2Map 结构体转map, 可以指定字段名称进行强制转换 structVal - 结构体对象 forceConvFields - 强制转换的字段名称列表

func Bean2Map4CustomStrategy

func Bean2Map4CustomStrategy(structVal any, convertName func(fileName string) string,
	forceConvFields ...string) map[string]any

Bean2Map4CustomStrategy 结构体转map, 可以指定字段名称进行强制转换,可以自定义字段名称转换方式 structVal - 结构体对象 convertName - 自定义字段名称转换函数 forceConvFields - 强制转换的字段名称列表

func Bean2MapHump

func Bean2MapHump(structVal any, forceConvFields ...string) map[string]any

Bean2MapHump 结构体转map, 可以指定字段名称进行强制转换,并将字段名称转换为 “小驼峰” 命名方式 structVal - 结构体对象 forceConvFields - 强制转换的字段名称列表

func Bean2MapSnake

func Bean2MapSnake(structVal any, forceConvFields ...string) map[string]any

Bean2MapSnake 结构体转map, 可以指定字段名称进行强制转换,并将字段名称转换为 “小写下划线” 命名方式 structVal - 结构体对象 forceConvFields - 强制转换的字段名称列表

func BeanFieldsForeach

func BeanFieldsForeach(structVal any, consumer func(structField reflect.StructField, rvField reflect.Value))

BeanFieldsForeach 将结构体字段反射进行循环自定义处理 structVal - 结构体对象 consumer - 自定义处理函数

函数会收到两个参数:
	1、structField: 结构体字段对应的字段结构反射对象 reflect.StructField
	2、rvField: 结构体字段对应的反射值 reflect.Value

func CopyProperties

func CopyProperties(source any, target any, ignores ...string)

CopyProperties 结构体的属性赋值,将source赋值到target上,可以指定字段不进行赋值 底层使用结构体反射的方式实现 注意: 两个结构体内的属性名称一样的才会赋值成功,否则名称不一样的不生效 source - 源对象 target - 目标对象 ignores - 忽略的字段名称列表

func CopyPropertiesByJson

func CopyPropertiesByJson(source any, target any)

CopyPropertiesByJson 结构体的属性赋值,将source赋值到target上 底层使用json的方式实现 注意: 1、target必须是结构体的指针,否则该方法不生效

2、两个结构体内的属性名称一样的才会赋值成功,否则名称不一样的不生效

func CopyStruct

func CopyStruct[Struct any](source any) *Struct

CopyStruct 结构体的属性赋值,将source赋值到泛型Struct的结构体上 底层使用结构体反射的方式实现 注意: 两个结构体内的属性名称一样的才会赋值成功,否则名称不一样的不生效

func FindFiles

func FindFiles(dir string) ([]string, error)

func FindFilesWithPrefix

func FindFilesWithPrefix(dir, prefix string) ([]string, error)

func FindFilesWithPrefix2

func FindFilesWithPrefix2(dir, prefix string) ([]string, error)

FindFilesWithPrefix2 查找给定目录下具有相同文件名前缀的所有文件

func GetAllFieldNames4CustomStrategy

func GetAllFieldNames4CustomStrategy(structVal any, convertName func(fileName string) string,
	forceExcludeFields ...string) []string

GetAllFieldNames4CustomStrategy 获取结构体 “所有” 字段名列表, 可以指定忽略的字段,可以自定义字段名称转换方式 structVal - 结构体对象 convertName - 自定义字段名称转换函数 forceExcludeFields - 强制排除(忽略)的字段名称列表

func GetFieldNames4IncludeTypeAndCustomStrategy

func GetFieldNames4IncludeTypeAndCustomStrategy(structVal any, fieldType FieldType,
	convertName func(fileName string) string, forceExcludeFields ...string) []string

GetFieldNames4IncludeTypeAndCustomStrategy 获取结构体字段名列表, 可以指定零值、非零值类型的字段,可以指定忽略的字段,可以自定义字段名称转换方式 structVal - 结构体对象 FieldType - 字段类型(所有、零值、非零值) convertName - 自定义字段名称转换函数 forceExcludeFields - 强制排除(忽略)的字段名称列表

func GetNotZeroFieldNames4CustomStrategy

func GetNotZeroFieldNames4CustomStrategy(structVal any, convertName func(fileName string) string,
	forceExcludeFields ...string) []string

GetNotZeroFieldNames4CustomStrategy 获取结构体 “非零值” 字段名列表, 可以指定忽略的字段,可以自定义字段名称转换方式 structVal - 结构体对象 convertName - 自定义字段名称转换函数 forceExcludeFields - 强制排除(忽略)的字段名称列表

func GetZeroFieldNames

func GetZeroFieldNames(structVal any, ignores ...string) []string

GetZeroFieldNames 获取结构体零值字段名列表, 可以指定忽略的字段 structVal - 结构体对象 ignores - 忽略的字段名称列表

func GetZeroFieldNames4CustomStrategy

func GetZeroFieldNames4CustomStrategy(structVal any, convertName func(fileName string) string,
	forceExcludeFields ...string) []string

GetZeroFieldNames4CustomStrategy 获取结构体 “零值” 字段名列表, 可以指定忽略的字段,可以自定义字段名称转换方式 structVal - 结构体对象 convertName - 自定义字段名称转换函数 forceExcludeFields - 强制排除(忽略)的字段名称列表

func GetZeroFieldNamesHump

func GetZeroFieldNamesHump(structVal any, ignores ...string) []string

GetZeroFieldNamesHump 获取结构体零值字段名列表, 可以指定忽略的字段,并将字段名称转换为 “小驼峰” 命名方式 structVal - 结构体对象 ignores - 忽略的字段名称列表

func GetZeroFieldNamesSnake

func GetZeroFieldNamesSnake(structVal any, ignores ...string) []string

GetZeroFieldNamesSnake 获取结构体零值字段名列表, 可以指定忽略的字段,并将字段名称转换为 “小写下划线” 命名方式 structVal - 结构体对象 ignores - 忽略的字段名称列表

func IsNil

func IsNil(a any) bool

IsNil 判断接口类型的a参数是否为nil

func Map2Bean

func Map2Bean[T comparable](mapVal map[string]any) *T

Map2Bean map转结构体 通过json方式转换,底层会通过反射自动给结构体加上json的tag 返回的是该泛型结构体的指针

func NotExistTag

func NotExistTag(rtStruct reflect.Type, tag string) bool

NotExistTag 根据结构体反射类型和tag名称,判断该结构体上是否存在此tag return true - 不存在

false - 存在

func ReflectConvert4Any

func ReflectConvert4Any(rt reflect.Type, val any) (reflect.Value, error)

ReflectConvert4Any 将any(接口)类型的val转化为rt类型的反射值rv 注意:返回的是rt的指针类型的reflect.Value

func ReflectConvert4Str

func ReflectConvert4Str(rt reflect.Type, p string) (reflect.Value, error)

ReflectConvert4Str 将string类型的val转化为rt类型的反射值rv 注意:返回的是rt的指针类型的reflect.Value

func Str2Float64

func Str2Float64(p string) (float64, error)

func Str2Int

func Str2Int(p string) (int, error)

func Str2Int64

func Str2Int64(p string) (int64, error)

func Str2Uint64

func Str2Uint64(p string) (uint64, error)

func ToJson

func ToJson(obj any) string

ToJson 该方法结构体可以不写json tag,内部会自动帮我们加

func ToJson2

func ToJson2(obj any, omitempty bool) string

ToJson2 该方法会自动识别结构体是否有json的tag,不存在,会自动加上(小驼峰命名) omitempty - 表示转json时,是否忽略零值字段

func ToJson3

func ToJson3(obj any) string

ToJson3 对象转json,仅封装异常处理

func ToObj

func ToObj(jsonStr string, obj any)

ToObj json转对象 通过obj的指针传回 所以obj必须为结构体的指针类型

func ToObj4Bytes

func ToObj4Bytes(bytes []byte, obj any)

ToObj4Bytes 字节数组转对象 通过obj的指针传回 所以obj必须为结构体的指针类型

func ToStruct

func ToStruct[T comparable](jsonStr string) *T

ToStruct json转对象(泛型) 返回泛型结构体指针

func ToStruct4Bytes

func ToStruct4Bytes[T comparable](bytes []byte) *T

ToStruct4Bytes 字节数组转对象(泛型) 返回泛型结构体指针

Types

type FieldType

type FieldType uint8

FieldType 字段类型枚举

const (
	All     FieldType = iota // 所有字段
	Zero                     // 零值字段
	NotZero                  // 非零值字段
)

Jump to

Keyboard shortcuts

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