Home > Backend Development > Golang > How to Evenly Distribute a Go Slice into Multiple Chunks?

How to Evenly Distribute a Go Slice into Multiple Chunks?

Patricia Arquette
Release: 2024-12-20 06:41:08
Original
126 people have browsed it

How to Evenly Distribute a Go Slice into Multiple Chunks?

Slice Chunking in Go

Problem:

How to evenly distribute a given slice into multiple slices in Go?

Solution:

To chunk a slice evenly, follow these steps:

  1. Determine the chunk size by dividing the length of the original slice by the desired number of chunks.
  2. Initialize a slice of slices to store the chunked slices.
  3. Iterate over the original slice, adding chunks of the defined size to the slice of slices.
  4. Adjust the end index of the last chunk to ensure that all elements are included.

Here's a revised version of the code provided in the question:

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])
}
Copy after login

This updated code creates evenly distributed chunked slices by appending subsets of the original slice to the slice of slices. The chunk size is calculated to ensure that all elements are distributed as evenly as possible.

The above is the detailed content of How to Evenly Distribute a Go Slice into Multiple Chunks?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template