Bagaimanakah Saya Boleh Menggunakan Fungsi pada Setiap Elemen dalam Senarai Pergi dengan Cekap?

Barbara Streisand
Lepaskan: 2024-11-13 04:39:02
asal
169 orang telah melayarinya

How Can I Apply a Function to Every Element in a Go List Efficiently?

Aplikasi Fungsi Cekap untuk Senarai dalam Go

Untuk menggunakan fungsi pada setiap elemen dalam senarai Go dan menyimpan hasilnya dalam senarai baharu , pendekatan tradisional melibatkan gelung pada senarai input dan melampirkan keputusan pada senarai output. Walau bagaimanapun, dengan Go 1.18 dan ke atas, terdapat penyelesaian yang lebih ringkas dan generik: fungsi Map.

Fungsi Map mengambil senarai elemen jenis T dan fungsi yang menukar setiap elemen kepada nilai jenis V. Ia mengembalikan senarai baharu jenis []V yang mengandungi hasil penggunaan fungsi pada setiap elemen dalam senarai input.

Berikut ialah contoh:

func Map[T, V any](ts []T, fn func(T) V) []V {
    result := make([]V, len(ts))
    for i, t := range ts {
        result[i] = fn(t)
    }
    return result
}

// Usage example
input := []int{4, 5, 3}
outputInts := Map(input, func(item int) int { return item + 1 })
outputStrings := Map(input, func(item int) string { return fmt.Sprintf("Item:%d", item) })
Salin selepas log masuk

Dalam contoh ini, input ialah senarai integer. Kita boleh menggunakan fungsi Map dengan dua fungsi berbeza untuk mencipta senarai integer incremented (outputInts) dan senarai rentetan terformat (outputStrings). Ini menghapuskan keperluan untuk gelung yang jelas dan menyediakan alternatif yang ringkas dan cekap kepada pendekatan tradisional.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Fungsi pada Setiap Elemen dalam Senarai Pergi dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan