golang实现数组分割的示例代码
Golang
2021-12-26
需求:给定一个数组和一个正整数,要求把数组分割成多个正整数大小的数组,如果不够分,则最后一个数组分到剩余的所有元素。
示例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 int64 if max%num == 0 { quantity = max / num } else { quantity = (max / num) + 1 } //声明分割好的二维数组 var segments = make([][]int, 0) //声明分割数组的截止下标 var start, end, i int64 for i = 1; i <= quantity; i++ { end = i*num if i != quantity { segments = append(segments, arr[start:end]) } else { segments = append(segments, arr[start:]) } start = i*num } return segments }
附:这个是我在实际业务需求中遇到的问题,不知道大家有没有更好写法
到此这篇关于golang实现数组分割的示例代码的文章就介绍到这了,更多相关golang数组分割 内容请搜索www.580doc.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.580doc.com!
上一篇:浅谈Go1.18中的泛型编程下一篇:golang 数组随机排序的实现
相关文章
- 日期:2021-12-13解析golang 标准库template的代码生成方法
- 日期:2021-12-13Golang中实现简单的Http Middleware
- 日期:2021-12-13一些关于Go程序错误处理的相关建议
- 日期:2021-12-13手把手带你走进Go语言之运算符解析
- 日期:2021-12-13Go 基于令牌桶的限流器实现
- 日期:2021-12-13Golang通脉之类型定义