Documentation
¶
Index ¶
- func ArrChunk[V any](arr []V, sizes ...int) [][]V
- func ArrConcat[V any](arr []V, arrs ...[]V) []V
- func ArrCount[V comparable](arr []V, vals ...V) int
- func ArrEvery[V any, T []V](arr T, fn func(val V, idx int) bool) bool
- func ArrFill[V any, T []V](arr *T, val V) *T
- func ArrFilter[V any, T []V](arr T, fn func(val V, idx int) bool) T
- func ArrFind[V any, T []V](arr T, fn func(val V, idx int) bool) V
- func ArrFindIndex[V any, T []V](arr T, fn func(val V, idx int) bool) int
- func ArrFindLast[V any, T []V](arr T, fn func(val V, idx int) bool) V
- func ArrFindLastIndex[V any, T []V](arr T, fn func(val V, idx int) bool) int
- func ArrIncludes[V comparable, T []V](arr T, val V) bool
- func ArrIndexOf[V comparable, T []V](arr T, val V) int
- func ArrJoin[V any, T []V, R any](arr T, sep R) string
- func ArrMap[V any, R any](arr []V, fn func(val V, idx int) R) []R
- func ArrMean[V Numeric](arr []V) float64
- func ArrPop[V any, T []V](arr *T) V
- func ArrProduct[V Numeric](arr []V) V
- func ArrPush[V any, T []V](arr *T, vals ...V) int
- func ArrReduce[V any, R any](arr []V, fn func(prev R, curr V, idx int, arr []V) R, initVal ...R) R
- func ArrSample[V any](arr []V, count ...int) []V
- func ArrSampleOne[V any](arr []V) V
- func ArrShift[V any, T []V](arr *T) V
- func ArrShuffle[V any](arr []V) []V
- func ArrSome[V any, T []V](arr T, fn func(val V, idx int) bool) bool
- func ArrSplice[V any, T []V](arr *T, start, length int, val ...V) T
- func ArrSum[V Numeric](arr []V) V
- func ArrUnShift[V any, T []V](arr *T, vals ...V) int
- func ArrUnion[V comparable](arr []V, arrs ...[]V) []V
- func ArrUniq[V comparable](arr []V) []V
- func Decode[T comparable](val T, matches ...T) (v T)
- func F32(str string) (f32 float32)
- func F64(str string) (f64 float64)
- func HmacMd5(key, data []byte) string
- func HmacSha1(secret, data []byte) string
- func HmacSha256(secret, data []byte) string
- func IIf[T any](condition bool, ifTrue, ifFalse T) T
- func JSON(data any) string
- func JSONStr(data any) string
- func Join[V any, T []V, R any](arr T, sep R) string
- func Md5(b []byte) string
- func NewErr(strs ...any) error
- func Now() string
- func Nvl[T comparable](val T, vals ...T) T
- func PrintJSON(data any) (j string)
- func RandChar(n int) (chars string)
- func RandHex(n int) (hexs string)
- func RandI64(min, max int64) int64
- func RandIMEI() (imei string)
- func RandInt(min, max int) int
- func RandLetter(n int) (chars string)
- func RandNum(n int) (num string)
- func Sha1(b []byte) string
- func Sha256(b []byte) string
- func Space(n int) string
- func Str(v any) string
- func Trim(str string, cutset ...string) string
- func UUID() string
- type Numeric
Examples ¶
- ArrChunk
- ArrConcat
- ArrCount
- ArrEvery
- ArrFill
- ArrFilter
- ArrFind
- ArrFindIndex
- ArrFindLast
- ArrFindLastIndex
- ArrIncludes
- ArrIndexOf
- ArrJoin
- ArrMap
- ArrMean
- ArrPop
- ArrProduct
- ArrPush
- ArrReduce
- ArrSample
- ArrSampleOne
- ArrShift
- ArrShuffle
- ArrSome
- ArrSplice
- ArrSum
- ArrUnShift
- ArrUnion
- ArrUniq
- F32
- F64
- HmacMd5
- HmacSha256
- JSON
- Join
- Md5
- Now
- PrintJSON
- RandChar
- RandHex
- RandI64
- RandIMEI
- RandInt
- RandLetter
- RandNum
- Sha1
- Sha256
- Trim
- UUID
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ArrChunk ¶
ArrChunk 将数组按指定size分组,若不能均分,最后一组包含剩下的元素
Example ¶
fmt.Println(ArrChunk([]int{1, 2, 3, 4}, 3))
Output: [[1 2 3] [4]]
func ArrConcat ¶
func ArrConcat[V any](arr []V, arrs ...[]V) []V
ArrConcat 将多个数组的元素全部拼接到一个新数组并返回
Example ¶
fmt.Println(ArrConcat([]int{1})) fmt.Println(ArrConcat([]int{1}, []int{2, 3}, []int{4}))
Output: [1] [1 2 3 4]
func ArrCount ¶
func ArrCount[V comparable](arr []V, vals ...V) int
ArrCount 返回数组中满足指定条件的元素个数
Example ¶
fmt.Println(ArrCount([]int{1, 2, 2, 2, 3}, 2))
Output: 3
func ArrEvery ¶
ArrEvery 判断数组中是否所有元素都满足条件,首次不满足时结束
Example ¶
fmt.Println(ArrEvery([]int{1, 2, 3, 4}, func(val int, idx int) bool { return val > 2 }))
Output: false
func ArrFill ¶
func ArrFill[V any, T []V](arr *T, val V) *T
ArrFill 将数组元素全部填充为指定值
Example ¶
fmt.Println(ArrFill(&[]int{1, 2, 3}, 1)) fmt.Println(ArrFill(&[]int{1, 2, 3, 4}, 2))
Output: &[1 1 1] &[2 2 2 2]
func ArrFilter ¶
ArrFilter 筛选数组元素,剔除不满足fn()==true的元素
Example ¶
fmt.Println(ArrFilter([]int{1, 2, 3, 4}, func(v int, i int) bool { return v%2 == 0 }))
Output: [2 4]
func ArrFind ¶
ArrFind 查找数组中满足条件的元素,找到时会提前结束,并返回该元素
Example ¶
fmt.Println(ArrFind([]int{1, 2, 3, 4}, func(val int, idx int) bool { return val%2 == 0 }))
Output: 2
func ArrFindIndex ¶
ArrFindIndex 查找数组中满足条件的元素,找到时会提前结束,并返回该元素下标,否则返回-1
Example ¶
fmt.Println(ArrFindIndex([]int{1, 2, 3, 4}, func(val int, idx int) bool { return val%2 == 0 }))
Output: 1
func ArrFindLast ¶
ArrFindLast 倒序查找数组中满足条件的元素,找到时会提前结束,并返回该元素
Example ¶
fmt.Println(ArrFindLast([]string{"a", "ab", "abc", "bc"}, func(val string, idx int) bool { return strings.Contains(val, "a") }))
Output: abc
func ArrFindLastIndex ¶
ArrFindLastIndex 倒序查找数组中满足条件的元素,找到时会提前结束,并返回该元素下标,否则返回-1
Example ¶
fmt.Println(ArrFindLastIndex([]string{"a", "ab", "abc", "bc"}, func(val string, idx int) bool { return strings.Contains(val, "a") }))
Output: 2
func ArrIncludes ¶
func ArrIncludes[V comparable, T []V](arr T, val V) bool
ArrIncludes 按指定条件查找元素,存在时返回true,否则返回false
Example ¶
fmt.Println(ArrIncludes([]int{1, 2, 3, 4}, 3)) fmt.Println(ArrIncludes([]int{1, 2, 3, 4}, 5))
Output: true false
func ArrIndexOf ¶
func ArrIndexOf[V comparable, T []V](arr T, val V) int
ArrIndexOf 按指定条件查找元素,存在时返回下标,否则返回-1
Example ¶
fmt.Println(ArrIndexOf([]int{1, 2, 3, 4}, 3))
Output: 2
func ArrJoin ¶
ArrJoin 将数组以指定分隔符拼接为字符串
Example ¶
arr := []int{1, 2, 3, 4} fmt.Println(ArrJoin(arr, ","))
Output: 1,2,3,4
func ArrMap ¶
ArrMap 重构数组元素,新元素为fn()的返回值
Example ¶
fmt.Println(ArrMap([]int{1, 2, 3, 4}, func(v int, i int) int { return v * 2 }))
Output: [2 4 6 8]
func ArrPop ¶
func ArrPop[V any, T []V](arr *T) V
ArrPop 从数组中移除并返回最后一个元素
Example ¶
arr := []int{1, 2, 3, 4} fmt.Println(ArrPop(&arr), arr)
Output: 4 [1 2 3]
func ArrProduct ¶
func ArrProduct[V Numeric](arr []V) V
ArrProduct 数组元素的乘积
Example ¶
fmt.Println(ArrProduct([]int{1, 2, 3, 4}))
Output: 24
func ArrPush ¶
ArrPush 添加一些元素到数组末尾,然后返回现有的元素个数
Example ¶
arr := []int{1, 2, 3, 4} fmt.Println(ArrPush(&arr, 5), arr)
Output: 5 [1 2 3 4 5]
func ArrReduce ¶
ArrReduce 对数组中的每个元素按序执行fn(),fn会将上次执行结果(prev)作为参数传入,直到最后一次执行并返回结果。
Example ¶
// 数组求和 fmt.Println(ArrReduce([]int{1, 2, 3}, func(prev int, curr int, idx int, arr []int) int { return prev + curr })) // 元素拼接 fmt.Println(ArrReduce([]int{1, 2, 3}, func(prev string, curr int, idx int, arr []int) string { return prev + Str(curr) }))
Output: 6 123
func ArrSample ¶
ArrSample 从数组中随机选取指定数量元素
- 同一元素不会多次选取,但选取的多个元素可能具有相同值
Example ¶
fmt.Println(ArrSample([]int{1, 2, 3}, 1)) fmt.Println(ArrSample([]int{1, 2, 2, 2, 3}, 3))
Output: [1] [3 2 2]
func ArrSampleOne ¶
func ArrSampleOne[V any](arr []V) V
ArrSampleOne 从数组中随机选取1个元素
Example ¶
fmt.Println(ArrSampleOne([]int{1, 2, 3}))
Output: 2
func ArrShift ¶
func ArrShift[V any, T []V](arr *T) V
ArrShift 从数组中移除并返回第一个元素
Example ¶
arr := []int{1, 2, 3, 4} fmt.Println(ArrShift(&arr), arr)
Output: 1 [2 3 4]
func ArrShuffle ¶
func ArrShuffle[V any](arr []V) []V
ArrShuffle 将数组元素打乱顺序
Example ¶
fmt.Println(ArrShuffle([]int{1, 2, 3}))
Output: [2 1 3]
func ArrSome ¶
ArrSome 判断数组中是否有一个元素满足条件,首次满足时结束
Example ¶
fmt.Println(ArrSome([]int{1, 2, 3, 4}, func(val int, idx int) bool { return val > 2 }))
Output: true
func ArrSplice ¶
ArrSplice 从数组start位置开始,删去length个元素,并将val依次拼接至末尾,然后返回被删除的元素
- 若start为负数,则从末尾开始算,如:-5表示从倒数第5个元素开始
Example ¶
arr := []int{1, 2, 3, 4} fmt.Println(ArrSplice(&arr, 1, 2, 5, 6), arr) arr2 := []int{1, 2, 3, 4} fmt.Println(ArrSplice(&arr2, -4, 3, 5, 6), arr2)
Output: [2 3] [1 4 5 6] [1 2 3] [4 5 6]
func ArrSum ¶
func ArrSum[V Numeric](arr []V) V
ArrSum 数组元素求和
Example ¶
fmt.Println(ArrSum([]int{1, 2, 3}))
Output: 6
func ArrUnShift ¶
ArrUnShift 添加一些元素到数组的开头,然后返回现有的元素个数
Example ¶
arr := []int{1, 2, 3, 4} fmt.Println(ArrUnShift(&arr, 0), arr)
Output: 5 [0 1 2 3 4]
func ArrUnion ¶
func ArrUnion[V comparable](arr []V, arrs ...[]V) []V
ArrUnion 将多个数组的元素合并到一个数组,并返回该数组去重后的新数组
Example ¶
fmt.Println(ArrUnion([]int{1, 2, 3, 4}, []int{2, 3, 4}))
Output: [1 2 3 4]
func ArrUniq ¶
func ArrUniq[V comparable](arr []V) []V
ArrUniq 数组元素去重
Example ¶
fmt.Println(ArrUniq([]int{1, 2, 2, 3}))
Output: [1 2 3]
func Decode ¶
func Decode[T comparable](val T, matches ...T) (v T)
Decode 类似oracle的decode、php8的match
- 参数为两个一组,依次往后匹配
- 1. 若某组的首个值与val相等,则返回该组第2个值
- 2. 若某组仅1个值,则直接返回该值
- 3. 否则返回与val相同类型的空值
func F32 ¶
F32 转float32
Example ¶
fmt.Printf("%v %T", F32("56.12345678"), F32("56.12345678"))
Output: 56.123455 float32
func F64 ¶
F64 转float64
Example ¶
fmt.Printf("%v %T", F64("56.12345678"), F64("56.12345678"))
Output: 56.12345678 float64
func HmacMd5 ¶
HmacMd5 []byte转md5
Example ¶
fmt.Println(HmacMd5([]byte("123456"), []byte("123456")))
Output: 30ce71a73bdd908c3955a90e8f7429ef
func HmacSha256 ¶
HmacSha256 HmacSha256加密
Example ¶
fmt.Println(HmacSha256([]byte("123456"), []byte("123456")))
Output: b8ad08a3a547e35829b821b75370301dd8c4b06bdd7771f9b541a75914068718
func JSON ¶
JSON 对json数据进行格式化(带缩进)
Example ¶
m := map[string]int{"a": 1, "b": 2} fmt.Println(JSON(m))
Output: { "a": 1, "b": 2 }
func Join ¶
Join 将数组以指定分隔符拼接为字符串
- ArrJoin的别名
Example ¶
arr := []int{1, 2, 3, 4} fmt.Println(Join(arr, ","))
Output: 1,2,3,4
func Md5 ¶
Md5 []byte转md5
Example ¶
fmt.Println(Md5([]byte("123456")))
Output: e10adc3949ba59abbe56e057f20f883e
func Now ¶
func Now() string
Now 返回当时日期,格式:2006-01-02 15:04:05
Example ¶
fmt.Println(Now())
Output: 2023-12-01 16:45:12
func PrintJSON ¶
PrintJSON 对json数据进行格式化(带缩进),并打印
Example ¶
m := map[string]int{"a": 1, "b": 2} PrintJSON(m)
Output: { "a": 1, "b": 2 }
func RandChar ¶
RandChar 生成指定长度的大/小写字母和数字的字符串
Example ¶
fmt.Println(RandChar(32))
Output: RtoNbkXsotPMYQwQHOBVkP57mrOtVnKF
func RandHex ¶
RandHex 生成指定长度的hex字符串
Example ¶
fmt.Println(RandHex(32))
Output: 070cf8a43e8d63e76b6a5732e681b7bc
func RandIMEI ¶
func RandIMEI() (imei string)
RandIMEI 生成随机的手机IMEI串号
Example ¶
fmt.Println(RandIMEI())
Output: 752700536508331
func RandLetter ¶
RandLetter 生成指定长度的大/小写字母的字符串
Example ¶
fmt.Println(RandLetter(32))
Output: RJdQgtwErdmfeieKSSFSihuvkJrKTdTM
func RandNum ¶
RandNum 生成指定长度的数字字符串
Example ¶
fmt.Println(RandNum(32))
Output: 83420453871701843678066285134205
func Sha1 ¶
Sha1 Sha1加密
Example ¶
fmt.Println(Sha1([]byte("123456")))
Output: 7c4a8d09ca3762af61e59520943dc26494f8941b
func Sha256 ¶
Sha256 Sha256加密
Example ¶
fmt.Println(Sha256([]byte("123456")))
Output: 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92