package main
import (
"fmt"
"math"
)
func main() {
mySliceX1 := []string{"a", "b", "c", "d", "e", "f"}
newSlice := CutStringSlice(mySliceX1, 4)
fmt.Println(newSlice)
}
// CutStringSlice 根据份数分割字符串切片
func CutStringSlice(slice []string, shareNums int) *[][]string {
sliceLen := len(slice)
if sliceLen == 0 {
panic(any("slice is nil"))
}
totalShareNums := math.Ceil(float64(sliceLen) / float64(shareNums))
resSlice := make([][]string, 0, int(totalShareNums))
for i := 0; i < sliceLen; i+= shareNums {
endIndex := i+shareNums
if endIndex > sliceLen {
endIndex = sliceLen
}
resSlice = append(resSlice, slice[i:endIndex])
}
return &resSlice
}