golang 数组分割

需求:给定一个数组和一个正整数,要求把数组分割成多个正整数大小的数组,如果不够分,则最后一个数组分到剩余的所有元素。

  • 示例1:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]2[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
  • 示例2:
[1, 2, 3, 4, 5, 6, 7, 8, 9]2[[1, 2], [3, 4], [5, 6], [7, 8], [9]]

下面是我的实现代码:

//分割数组,根据传入的数组和分割大小,将数组分割为大小等于指定大小的多个数组,如果不够分,则最后一个数组元素小于其他数组
func splitArray(arr []int, num int64) [][]int {max := int64(len(arr))//判断数组大小是否小于等于指定分割大小的值,是则把原数组放入二维数组返回if max <= num {return [][]int{arr}}//获取应该数组分割为多少份var quantity int64if max%num == 0 {quantity = max / num} else {quantity = (max / num) + 1}//声明分割好的二维数组var segments = make([][]int, 0)//声明分割数组的截止下标var start, end, i int64for i = 1; i <= quantity; i++ {end = i*numif i != quantity {segments = append(segments, arr[start:end])} else {segments = append(segments, arr[start:])}start = i*num}return segments
}
^_^