package main
import (
"fmt"
"math"
)
func hello1(xids []int64, count int) {
//count 分组后的 每组最大数据量
numberOfBatches := int(math.Ceil(float64(len(xids)) / float64(count))) // math.Ceil 向上取整
if len(xids) <= count {
fmt.Println("查询一次直接返回", xids)
return
}
for i := 0; i <= numberOfBatches; i++ {
start := i * count // 开始索引
end := (i + 1) * count // 结束索引
if end > len(xids) { //如果结束索引大于 切片长度 end取值为 len(todyCampaignIds)
end = len(xids)
}
if start >= len(xids) {
break
}
fmt.Println("一个查询", numberOfBatches, "次", "当前是第", i+1, "次", "开始索引:", start, "结束索引:", end)
fmt.Println(xids[start:end]) // 索引 左闭右开 包含左侧 不包含右侧
}
}
func main() {
var xids = []int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 101, 103}
hello1(xids, 4)
}
hello-go-数据分批计算
最新推荐文章于 2024-05-22 10:04:23 发布