代码拉取完成,页面将自动刷新
package arrayhelper
import "strconv"
func ArrayChunk[T int64 | string](arr []T, step int64) (segmens [][]T) {
max := int64(len(arr))
if max < step {
segmens = append(segmens, arr)
return
}
var num = max / step
var beg int64
var end int64
for i := int64(0); i < num || end < max; i++ {
beg = 0 + i*step
end = beg + step
if end > max {
end = max
}
segmens = append(segmens, arr[beg:end])
}
return
}
func ArrayChunkInt64(arr []int64, step int64) (segmens [][]int64) {
segmens = ArrayChunk(arr, step)
return
}
func Int64ToStingArray(arr []int64) (idStr []string) {
if len(arr) <= 0 {
return
}
for _, v := range arr {
idStr = append(idStr, strconv.FormatInt(v, 10))
}
return
}
func StringToInt64Array(arr []string) (vals []int64) {
if len(arr) <= 0 {
return
}
for _, v := range arr {
tmp, err := strconv.ParseInt(v, 10, 64)
if err == nil {
vals = append(vals, tmp)
}
}
return
}
func StringToIntArray(arr []string) (vals []int) {
if len(arr) <= 0 {
return
}
for _, v := range arr {
tmp, err := strconv.Atoi(v)
if err == nil {
vals = append(vals, tmp)
}
}
return
}
func ArrayUnique[T int | int64 | string](arr []T) (dst []T) {
if len(arr) <= 0 {
return
}
valMap := make(map[T]bool)
for _, v := range arr {
_, ok := valMap[v]
if ok {
continue
}
valMap[v] = true
dst = append(dst, v)
}
return
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。