Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Memetakan Tatasusunan Objek dengan Cekap dalam Go Menggunakan Fungsi Generik?

Bagaimanakah Saya Boleh Memetakan Tatasusunan Objek dengan Cekap dalam Go Menggunakan Fungsi Generik?

Barbara Streisand
Lepaskan: 2024-12-28 18:24:20
asal
618 orang telah melayarinya

How Can I Efficiently Map Arrays of Objects in Go Using a Generic Function?

Memetakan Tatasusunan Objek Menggunakan Fungsi Generik

Dalam Go, fungsi yang beroperasi pada tatasusunan mempunyai had tertentu kerana sifatnya yang tidak fleksibel dan berkaitan overhed dengan menyalin hujah. Artikel ini meneroka pendekatan untuk memetakan tatasusunan objek dengan cara yang ringkas menggunakan fungsi peringkat atas generik.

Penyelesaian Satu Pelapik Menggunakan Fungsi Generik

Untuk memetakan tatasusunan objek dalam Go dengan satu pelapik, anda boleh mentakrifkan fungsi generik bernama Peta seperti berikut:

func Map[T, U any](ts []T, f func(T) U) []U {
    us := make([]U, len(ts))
    for i := range ts {
        us[i] = f(ts[i])
    }
    return us
}
Salin selepas log masuk

Fungsi ini mengambil pelbagai jenis T dan fungsi f yang mengambil parameter jenis T dan mengembalikan nilai jenis U. Ia mengembalikan tatasusunan jenis U yang mengandungi nilai yang dipetakan.

Penggunaan

Untuk memetakan tatasusunan objek, anda boleh menggunakan fungsi Peta seperti ini:

names := []string{"Alice", "Bob", "Carol"}
fmt.Println(Map(names, utf8.RuneCountInString))
Salin selepas log masuk

Kod ini akan mencetak output berikut kepada stdout:

[5 3 5]
Salin selepas log masuk

Pertimbangan

Fungsi Peta adalah berdasarkan gelung dan boleh memperkenalkan overhed berbanding dengan fungsi asli yang beroperasi pada tatasusunan. Adalah penting untuk menimbang faedah sintaks ringkas berbanding potensi implikasi prestasi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memetakan Tatasusunan Objek dengan Cekap dalam Go Menggunakan Fungsi Generik?. 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