Mencari Item Unik dalam Go Slice atau Array
Apabila berurusan dengan data dalam Go, anda mungkin perlu mengekstrak elemen unik sahaja daripada kepingan atau tatasusunan. Walaupun Python menyediakan binaan yang mudah seperti set untuk tujuan ini, Go tidak menawarkan kefungsian terbina dalam yang serupa secara asli.
Pertimbangkan kod sampel yang disediakan dalam soalan, yang bertujuan untuk mencari koordinat unik daripada senarai mengandungi pendua. Kod cuba untuk mencapai ini dengan mengulangi kedua-dua senarai asal (dilawati) dan senarai unik yang pada mulanya kosong, membandingkan setiap elemen yang dilawati kepada semua elemen yang unik menggunakan refleksi.
Analisis Kod dan Ralat
Walau bagaimanapun, kod tersebut mengandungi beberapa isu:
Penyelesaian yang Diperbaiki
Penyelesaian yang dipermudahkan dan lebih cekap yang mengikut logik yang dikehendaki dibentangkan di bawah:
<code class="go">visited := []visit{ visit{1, 100}, visit{2, 2}, visit{1, 100}, visit{1, 1}, } var unique []visit for _, v := range visited { skip := false for _, u := range unique { if v == u { skip = true break } } if !skip { unique = append(unique, v) } } fmt.Println(unique)</code>
Penyelesaian Alternatif Menggunakan Peta
Sebagai alternatif, seseorang boleh memanfaatkan peta Go[lawati] bool untuk mencipta struktur seperti set dan mengekstrak elemen unik seperti berikut:
<code class="go">visited := []visit{ visit{1, 100}, visit{2, 2}, visit{1, 100}, visit{1, 1}, } unique := map[visit]bool{} for _, v := range visited { unique[v] = true } fmt.Println(unique)</code>
Kunci peta mewakili elemen unik. Untuk mendapatkan sepotong nilai lawatan unik, langkah tambahan diperlukan:
<code class="go">visited := []visit{ visit{1, 100}, visit{2, 2}, visit{1, 100}, visit{1, 1}, } var unique []visit m := map[visit]bool{} for _, v := range visited { if !m[v] { m[v] = true unique = append(unique, v) } } fmt.Println(unique)</code>
Penyelesaian ini mencari elemen unik dalam kepingan atau tatasusunan Go, mematuhi pernyataan masalah dan menyediakan alternatif yang cekap apabila dibina- dalam fungsi set kurang.
Atas ialah kandungan terperinci Bagaimana untuk Mencari Elemen Unik dalam Go Slice atau Array?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!