Rumah > pembangunan bahagian belakang > Golang > Bagaimana Cara Mencari Elemen dalam Go Slices dengan Kekunci dengan Cekap?

Bagaimana Cara Mencari Elemen dalam Go Slices dengan Kekunci dengan Cekap?

Linda Hamilton
Lepaskan: 2024-12-15 02:29:08
asal
369 orang telah melayarinya

How to Efficiently Search for Elements in Go Slices by Key?

Mencari Elemen dalam Go Slices

Apabila bekerja dengan kepingan struct dalam Go, mencari elemen tertentu mengikut kekunci boleh menjadi tugas biasa. Mari kita terokai cara untuk mencapai ini menggunakan pelbagai pendekatan:

Fungsi Generik: slices.IndexFunc()

Setakat Go 1.21, pakej slices dalam perpustakaan standard memperkenalkan fungsi carian generik dipanggil slices.IndexFunc():

func IndexFunc[S ~[]E, E any](s S, f func(E) bool) int
Salin selepas log masuk

Fungsi ini mengembalikan indeks i pertama dengan f(s[i]) adalah benar, atau -1 jika tiada unsur padanan ditemui. Untuk mencari kunci dalam kepingan struct menggunakan kepingan.IndexFunc():

idx := slices.IndexFunc(myconfig, func(c Config) bool { return c.Key == "key1" })
Salin selepas log masuk

Untuk Gelung

Apabila menggunakan versi terdahulu Go atau untuk asas pendekatan, anda boleh menggunakan gelung for:

for _, v := range myconfig {
    if v.Key == "key1" {
        // Found
    }
}
Salin selepas log masuk

Dioptimumkan Untuk Gelung

Untuk prestasi yang lebih baik, disyorkan untuk menggunakan gelung for yang beroperasi pada indeks i dan bukannya menyalin elemen:

for i := range myconfig {
    if myconfig[i].Key == "key1" {
        // Found
    }
}
Salin selepas log masuk

Peta untuk Carian Cekap

Jika mencari elemen dengan kunci adalah operasi yang kerap, pertimbangkan untuk membina peta daripada kepingan. Ini membolehkan carian berasaskan kunci pantas:

// Build a config map:
confMap := map[string]string{}
for _, v := range myconfig {
    confMap[v.Key] = v.Value
}

// To find a value by key:
if v, ok := confMap["key1"]; ok {
    // Found
}
Salin selepas log masuk

Pertimbangan:

  • Jika berbilang konfigurasi dengan kunci yang sama boleh wujud, pertimbangkan untuk keluar dari gelung atau menggunakan peta.
  • Mengoptimumkan carian amat berfaedah untuk kepingan besar dengan unsur kompleks jenis.

Atas ialah kandungan terperinci Bagaimana Cara Mencari Elemen dalam Go Slices dengan Kekunci 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