golang實(shí)現(xiàn)數(shù)組分割的示例代碼
需求:給定一個(gè)數(shù)組和一個(gè)正整數(shù),要求把數(shù)組分割成多個(gè)正整數(shù)大小的數(shù)組,如果不夠分,則最后一個(gè)數(shù)組分到剩余的所有元素。
示例1:
數(shù)組:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],正整數(shù):2
期望結(jié)果: [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
示例2:
數(shù)組:[1, 2, 3, 4, 5, 6, 7, 8, 9],正整數(shù):2
期望結(jié)果: [[1, 2], [3, 4], [5, 6], [7, 8], [9]]
下面是我的實(shí)現(xiàn)代碼:
//分割數(shù)組,根據(jù)傳入的數(shù)組和分割大小,將數(shù)組分割為大小等于指定大小的多個(gè)數(shù)組,如果不夠分,則最后一個(gè)數(shù)組元素小于其他數(shù)組
func splitArray(arr []int, num int64) [][]int {
max := int64(len(arr))
//判斷數(shù)組大小是否小于等于指定分割大小的值,是則把原數(shù)組放入二維數(shù)組返回
if max <= num {
return [][]int{arr}
}
//獲取應(yīng)該數(shù)組分割為多少份
var quantity int64
if max%num == 0 {
quantity = max / num
} else {
quantity = (max / num) + 1
}
//聲明分割好的二維數(shù)組
var segments = make([][]int, 0)
//聲明分割數(shù)組的截止下標(biāo)
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
}
附:這個(gè)是我在實(shí)際業(yè)務(wù)需求中遇到的問(wèn)題,不知道大家有沒(méi)有更好寫(xiě)法
到此這篇關(guān)于golang實(shí)現(xiàn)數(shù)組分割的示例代碼的文章就介紹到這了,更多相關(guān)golang數(shù)組分割 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Golang實(shí)現(xiàn)文件夾的創(chuàng)建與刪除的方法詳解
這篇文章主要介紹了如何利用Go語(yǔ)言實(shí)現(xiàn)對(duì)文件夾的常用操作:創(chuàng)建于刪除。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-05-05
Golang實(shí)現(xiàn)自定義recovery中間件
在?Golang?的?Web?項(xiàng)目中,自定義?recovery?中間件是一種常見(jiàn)的做法,用于捕獲并處理應(yīng)用程序的運(yùn)行時(shí)錯(cuò)誤,下面我們就來(lái)看看具體如何實(shí)現(xiàn)吧2023-09-09
淺談golang fasthttp踩坑經(jīng)驗(yàn)
本文主要介紹了golang fasthttp踩坑經(jīng)驗(yàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
GoLand 2020.3 正式發(fā)布有不少新功能(支持泛型)
這是 2020 年第 3 個(gè)版本,也是最后一個(gè)版本,你還將發(fā)現(xiàn)許多新的代碼編輯功能,具體內(nèi)容詳情跟隨小編看看有哪些新特性2020-12-12
詳解Go語(yǔ)言的context包從放棄到入門(mén)
這篇文章主要介紹了Go語(yǔ)言的context包從放棄到入門(mén),本文通過(guò)實(shí)例演示給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
Go語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之插入排序示例詳解
這篇文章主要為大家介紹了Go語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之插入排序示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

