Memetakan Tatasusunan Objek dalam Go
Dalam Node.js, anda boleh menggunakan fungsi peta untuk mengubah tatasusunan objek menjadi susunan nilai. Tertanya-tanya bagaimana untuk mencapai ini dalam Go dengan ringkas?
Go Solution: Map as a Top-Level Function
Tidak seperti kaedah dalam Go, fungsi peringkat atas boleh mengambil tambahan jenis hujah. Menggunakan ini, kita boleh mentakrifkan Peta sebagai fungsi generik:
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 }
Kini, anda boleh menggunakan fungsi ini seperti berikut:
names := []string{"Alice", "Bob", "Carol"} fmt.Println(Map(names, utf8.RuneCountInString)) // Output: [5 3 5]
Konteks Sejarah: Mengapa Peta Tiada dalam Standard Go Libraries
Sebelum Go 1.18, perbincangan meluas dalam Isu GitHub untuk cadangan golang.org/x/exp/slices mempertimbangkan untuk menambah fungsi Peta tetapi akhirnya memutuskan untuk menentangnya kerana kebimbangan tentang:
API Strim dianggap sebagai rumah masa depan yang berpotensi untuk fungsi sedemikian.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memetakan Susunan Objek dengan Cekap dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!