首页 >后端开发 >Golang >如何将一个Go Slice均匀分布到多个Chunk中?

如何将一个Go Slice均匀分布到多个Chunk中?

Patricia Arquette
Patricia Arquette原创
2024-12-20 06:41:08220浏览

How to Evenly Distribute a Go Slice into Multiple Chunks?

Go 中的切片分块

问题:

如何将给定的切片均匀分布到多个切片去吗?

解决方案:

要将切片均匀分块,请按照以下步骤操作:

  1. 通过除以切片的长度来确定分块大小原始切片乘以所需的块数。
  2. 初始化一片切片来存储分块切片。
  3. 迭代原始切片,将定义大小的块添加到切片切片中。
  4. 调整最后一个块的结束索引以确保包含所有元素。

这是问题中提供的代码的修订版本:

var divided [][]string

chunkSize := (len(logs) + runtime.NumCPU - 1) / runtime.NumCPU

for i := 0; i < len(logs); i += chunkSize {
    end := i + chunkSize

    if end > len(logs) {
        end = len(logs)
    }

    divided = append(divided, logs[i:end])
}

此更新代码通过将原始切片的子集附加到切片的切片来创建均匀分布的分块切片。计算块大小以确保所有元素尽可能均匀分布。

以上是如何将一个Go Slice均匀分布到多个Chunk中?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn