golang实现数组分割的⽰例代码
需求:给定⼀个数组和⼀个正整数,要求把数组分割成多个正整数⼤⼩的数组,如果不够分,则最后⼀个数组分到剩余的所有元素。
⽰例1:go字符串转数组
数组:[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数组分割内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论