Menghiris Kekunci daripada Peta dalam Go
Soalan:
Adakah terdapat cara yang lebih cekap untuk mendapatkan sekeping kekunci daripada peta dalam Go?
Pada masa ini, pendekatan biasa adalah untuk lelaran di atas peta, menyalin kekunci ke dalam kepingan:
i := 0 keys := make([]int, len(mymap)) for k := range mymap { keys[i] = k i++ }
Jawapan:
Menggunakan fungsi make dengan kapasiti kepingan yang ditentukan boleh meningkatkan kecekapan dengan menghapuskan keperluan untuk pengagihan semula:
keys := make([]int, len(mymap)) i := 0 for k := range mymap { keys[i] = k i++ }
Pendekatan ini lebih ringkas sedikit dan menghapuskan overhed yang berkaitan dengan penambahan kepada sepotong. Dalam ujian dengan peta yang mengandungi sejumlah besar kunci, ia telah ditunjukkan 20% lebih pantas daripada menggunakan fungsi tambah.
Walaupun fungsi make menetapkan kapasiti hirisan, perlu diperhatikan bahawa penambahan masih memerlukan beberapa pemeriksaan overhed tambahan jika kapasiti telah dicapai pada setiap lampiran. Menugaskan ahli tatasusunan secara langsung boleh memberikan peningkatan prestasi dalam kes ini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghiris Kekunci dengan Cekap daripada Peta Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!