Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Memetakan Tatasusunan Objek dalam Go?

Bagaimanakah Saya Boleh Memetakan Tatasusunan Objek dalam Go?

Linda Hamilton
Lepaskan: 2025-01-03 08:06:39
asal
756 orang telah melayarinya

How Can I Map Arrays of Objects in Go?

Susunatur Pemetaan Objek dalam Go

Dalam Node.js, fungsi map() membenarkan anda mencipta tatasusunan baharu dengan mengubah setiap elemen tatasusunan asal. Dalam Go, tatasusunan tidak sefleksibel seperti kepingan dan tidak menyokong kaedah.

Walau bagaimanapun, anda boleh melaksanakan fungsi Peta generik yang boleh digunakan untuk mengubah tatasusunan objek kepada tatasusunan nilai yang diingini.

Peta Generik Fungsi

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

Penggunaan

fruits := []struct{ fruit string }{
    {fruit: "apple"},
    {fruit: "banana"},
    {fruit: "cherry"},
}

fruitNames := Map(fruits, func(fruit struct{ fruit string }) string { return fruit.fruit })

fmt.Println(fruitNames) // Outputs: [apple banana cherry]
Salin selepas log masuk

Pertimbangan

Walaupun menggunakan fungsi Peta satu garis boleh menjadi mudah, adalah penting untuk mempertimbangkan batasannya:

  • Kos tersembunyi: Fungsi Peta memperuntukkan kepingan baharu dan melakukan lelaran O(n), jadi ia mungkin tidak selalu menjadi pilihan yang paling cekap.
  • Pengendalian ralat: Fungsi Peta tidak mengendalikan ralat yang mungkin berlaku semasa mengubah elemen. Jika ralat mungkin, gelung tersuai mungkin diperlukan.

Walaupun pertimbangan ini, fungsi Map boleh menyediakan penyelesaian yang ringan dan elegan untuk memetakan tatasusunan objek dalam Go.

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