Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Memotong Slice dengan Cekap dalam Go?

Bagaimana untuk Memotong Slice dengan Cekap dalam Go?

Linda Hamilton
Linda Hamiltonasal
2024-12-28 10:10:11476semak imbas

How to Efficiently Chunk a Slice in Go?

Slice Chunking in Go

Seperti yang anda temui, chunking slice dalam Go boleh dicapai melalui langkah berikut:

  1. Tentukan Saiz Bongkah: Kira bongkah yang dikehendaki saiz dengan membahagikan panjang hirisan asal dengan bilangan CPU yang anda mahu gunakan.
  2. Lelaran Atas Slice: Gunakan gelung for untuk lelaran ke atas kepingan asal, bermula dari indeks 0.
  3. Buat Sekeping Baharu: Untuk setiap ketul, buat kepingan baharu untuk menyimpan elemen ketulan.
  4. Tambahkan Ketulan: Tambahkan unsur ketulan pada kepingan baharu.
  5. Tambahkan pada Keratan Terbahagi: Tambahkan keping yang baru dibuat ke kepingan yang dibahagikan, yang akan memegang bahagian akhir kepingan.

Berikut ialah contoh yang dikemas kini berdasarkan kod anda:

var divided [][]string

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

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

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

    temp := logs[i:end]  // Create a new slice for the chunk
    divided = append(divided, temp)  // Append the chunk to the divided slice
}

Atas ialah kandungan terperinci Bagaimana untuk Memotong Slice dengan Cekap dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn