首頁 >後端開發 >Golang >如何將一個Go Slice均勻分佈到多個Chunk中?

如何將一個Go Slice均勻分佈到多個Chunk中?

Patricia Arquette
Patricia Arquette原創
2024-12-20 06:41:08128瀏覽

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