diff --git a/tools/utils.go b/tools/utils.go index 1c4ab06..459f1dd 100644 --- a/tools/utils.go +++ b/tools/utils.go @@ -38,3 +38,16 @@ func ConvertSliceToInterfaceSlice[T any](origin []T) []interface{} { } return dest } + +// 对指定的数组进行分区 +func PartitionSlice[T any](slice []T, chunkSize int) [][]T { + var divided [][]T + for i := 0; i < len(slice); i += int(chunkSize) { + end := i + chunkSize + if end > len(slice) { + end = len(slice) + } + divided = append(divided, slice[i:end]) + } + return divided +}