Documentation
¶
Index ¶
- func AnyConvert2T[T any](v any, t T) T
- func ArrayChunk[T ~[]V, V any](s T, size int) []T
- func ArrayColumn[T ~[]M, M ~map[K]V, K comparable, V any](arr T, k K) []V
- func ArrayDiff[T comparable](first []T, others ...[]T) []T
- func ArrayKeys[T ~map[K]V, K comparable, V any](arr T) []K
- func ArrayPluck[T ~[]M, M ~map[string]V, K string, V comparable](arr T, kName, vName string) map[V]V
- func ArrayReIndex[T ~[]M, M ~map[K]V, K comparable, V comparable](arr T, idx K) map[V]M
- func ArrayUnique[T comparable](arr []T) []T
- func ArrayValues[T ~map[K]V, K comparable, V any](arr T) []V
- func ChunkExec[V any, R any](values []V, chunkNum int, f func(miniVals []V) ([]R, error)) (res []R, errs error)
- func ConcurrentWithLimit[A, B any](data []A, limit int, processFunc func(A) B) []B
- func ConcurrentWithLimitRetErrs[A, B any](data []A, limit int, processFunc func(A) (B, error)) ([]B, error)
- func Difference[T comparable](a, b []T) []T
- func DurationToChinese(d time.Duration) string
- func Each[T any, R any](arr []T, callback func(T, int) R) []R
- func Empty(v any) bool
- func ErrJoin(errs ...error) error
- func GetMapWsDef[C comparable, V any, DV any](m map[C]V, key C, def DV) (DV, bool)
- func GetMapWsDefWsOutOk[C comparable, V any, DV any](m map[C]V, key C, def DV) DV
- func Intersection[T comparable](a, b []T) []T
- func IsFloat(data any) bool
- func IsInteger(data any) bool
- func IsMap(data any) bool
- func IsNumZero(v any) bool
- func IsNumeric(data any) bool
- func IsSet[C comparable, V any](m map[C]V, key C) bool
- func IsStruct(data any) bool
- func JsonMarshalIndent(jsonData string) string
- func MapMerge[K comparable, V any](maps ...map[K]V) map[K]V
- func MarshalJson(v any) string
- func Md5(input string) string
- func ParseGormColumnTag(tag reflect.StructTag) (columnName string, hasColumn bool)
- func RandomIntInRange(min, max int) int
- func SafeDivide[T Number](numerator, denominator T) (T, error)
- func SliceShuffle[T any](arr []T) []T
- func StructKeys[T any](s T) ([]string, error)
- func StructsColumn[T any, V any](structs []T, kefFunc func(T) V) []V
- func StructsPluck[T any, K comparable, V any](slice []T, kvFunc func(T) (K, V)) map[K]V
- func StructsReIndex[T any, K comparable](slice []T, keyFunc func(T) K) map[K]T
- func SymmetricDifference[T comparable](a, b []T) []T
- func TimeString2Time(t string) time.Time
- func TimeString2Unix(t string) int64
- type Number
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AnyConvert2T ¶
断言 any 类型是否能转换为指定类型,如果是,返回断言后的结果,否则返回指定的值
func ArrayColumn ¶
func ArrayColumn[T ~[]M, M ~map[K]V, K comparable, V any](arr T, k K) []V
接收一个map的切片和一个key,返回所有map中key对应的value所组成的切片
func ArrayDiff ¶
func ArrayDiff[T comparable](first []T, others ...[]T) []T
多个切片的差集,支持传入多个切片,返回第一个切片中不包含在任意一个切片中的元素。
func ArrayKeys ¶
func ArrayKeys[T ~map[K]V, K comparable, V any](arr T) []K
接收一个map,返回map的所有key组成的切片
func ArrayPluck ¶
func ArrayPluck[T ~[]M, M ~map[string]V, K string, V comparable](arr T, kName, vName string) map[V]V
接收一个map组成的切片,返回一个以指定key作为键,指定key作为值的新map
func ArrayReIndex ¶ added in v1.1.17
func ArrayReIndex[T ~[]M, M ~map[K]V, K comparable, V comparable](arr T, idx K) map[V]M
接收一个map的切片 从map中提取指定列的值重排切片的索引,返回一个以指定列的值为键,以原map为值的新map
func ArrayValues ¶
func ArrayValues[T ~map[K]V, K comparable, V any](arr T) []V
接收一个map,返回map的所有val组成的切片
func ChunkExec ¶ added in v1.1.22
func ChunkExec[V any, R any](values []V, chunkNum int, f func(miniVals []V) ([]R, error)) (res []R, errs error)
分块执行一个func,支持设置分快大小;func遍历执行每个块
func ConcurrentWithLimit ¶ added in v1.1.18
并发执行一个func,支持限制并发数,func遍历执行传入的slices的每个元素
func ConcurrentWithLimitRetErrs ¶ added in v1.1.25
func ConcurrentWithLimitRetErrs[A, B any](data []A, limit int, processFunc func(A) (B, error)) ([]B, error)
并发执行一个func,支持控制并发数以及错误返回,func遍历执行传入的slices的每个元素
func Difference ¶ added in v1.1.21
func Difference[T comparable](a, b []T) []T
获取两个切片的差集,切片A中存在但在切片B中不存在的元素所组成的切片
func GetMapWsDef ¶
func GetMapWsDef[C comparable, V any, DV any](m map[C]V, key C, def DV) (DV, bool)
判断map类型的key是否存在,存在则转换为制定值的类型, 不存在或无法转换时返回指定的默认值
func GetMapWsDefWsOutOk ¶ added in v1.1.15
func GetMapWsDefWsOutOk[C comparable, V any, DV any](m map[C]V, key C, def DV) DV
判断map类型的key是否存在,存在则转换为制定值的类型, 不存在或无法转换时返回指定的默认值
func JsonMarshalIndent ¶ added in v1.1.12
格式化json字符串, 带缩进
func ParseGormColumnTag ¶ added in v1.1.14
ParseGormColumnTag 解析 gorm 标签中的 "column" 属性
func RandomIntInRange ¶ added in v1.1.18
func StructKeys ¶ added in v1.1.14
接收一个结构体,返回结构体的字段名所组成的切片; 优先取tag中gorm的column标签,如果gorm明示-,则跳过, 如果没有则取json, 如果json明示-, 则跳过, 如果没有,则跳过; 如果没有gorm和json,并且也没有标示 - 则取字段名 可以接受结构体或结构体指针
func StructsColumn ¶
接收一个结构体切片和一个以结构体为参数的函数,返回所有结构体执行函数后的返回值所组成的切片
func StructsPluck ¶ added in v1.1.17
func StructsPluck[T any, K comparable, V any](slice []T, kvFunc func(T) (K, V)) map[K]V
接收一个struct组成的切片和一个以struct为入参的func,func返回两个参数;返回一个以func返回的第一个值为key,以func返回的第二个值为value的map
func StructsReIndex ¶ added in v1.1.17
func StructsReIndex[T any, K comparable](slice []T, keyFunc func(T) K) map[K]T
ArrayReIndex的struct版本
func SymmetricDifference ¶ added in v1.1.21
func SymmetricDifference[T comparable](a, b []T) []T
两个切片的对称差,返回两个切片中不重复的元素集合,即会移除两个切片中都存在的元素。
func TimeString2Time ¶
时间字符串转为time.Time;YYYY-MM-DD H:i:s -> time.Time
func TimeString2Unix ¶
时间字符串转为unix时间戳;YYYY-MM-DD hh:mm:ss -> unix, YYYY-MM-DD -> unix