Bagaimanakah Fungsi Peta Go Dapat Memperkemas Transformasi Elemen Senarai?

Linda Hamilton
Lepaskan: 2024-11-10 15:37:03
asal
678 orang telah melayarinya

How Can Go's Map Function Streamline List Element Transformation?

Pelaksanaan Ringkas Aplikasi Fungsi untuk Elemen Senarai dalam Go

Apabila ingin menggunakan transformasi kepada setiap ahli senarai dan menyimpan hasilnya dalam senarai baharu, adalah perkara biasa untuk menggunakan gelung eksplisit. Walau bagaimanapun, dalam Python, pemahaman senarai memberikan alternatif yang ringkas, seperti yang ditunjukkan di bawah:

list = [1,2,3]
str = ', '.join(multiply(x, 2) for x in list)
Salin selepas log masuk

Dalam Go, pendekatan yang serupa memerlukan struktur gelung yang lebih bertele-tele:

list := []int{1,2,3}
list2 := []int

for _,x := range list {
    list2 := append(list2, multiply(x, 2))
}

str := strings.Join(list2, ", ")
Salin selepas log masuk

Walau bagaimanapun, Go 1.18 memperkenalkan penyelesaian yang elegan dengan fungsi Peta. Berikut ialah pelaksanaan Peta dan penggunaannya:

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
}
Salin selepas log masuk
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

Sintaks ringkas ini memudahkan transformasi elemen senarai dan menawarkan kelebihan ketara berbanding gelung eksplisit untuk tugasan tersebut.

Atas ialah kandungan terperinci Bagaimanakah Fungsi Peta Go Dapat Memperkemas Transformasi Elemen Senarai?. 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