Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Cari Item Unik dalam Go Slice atau Array?
Mencari Item Unik dalam Slice atau Array
Dalam Go, mengekalkan item unik dalam kepingan atau tatasusunan mungkin mencabar bagi pendatang baharu. Panduan ini menangani isu tersebut, menawarkan kedua-dua kaedah perbandingan manual dan alternatif berasaskan set.
Kaedah Perbandingan Manual
Kaedah perbandingan manual melibatkan gelung melalui tatasusunan dan menyemak setiap elemen terhadap setiap elemen lain. Jika pendua ditemui, ia dilangkau. Berikut ialah contoh yang dioptimumkan:
<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 } var uniqueVisits []visit for v := range unique { uniqueVisits = append(uniqueVisits, v) } fmt.Println(uniqueVisits)</code>
Alternatif Berasaskan Set
Go menyediakan struktur data peta yang boleh digunakan sebagai satu set. Peta dengan kunci lawatan jenis dan nilai jenis bool boleh menjadi cara yang mudah untuk mengekalkan nilai unik. Berikut ialah contoh:
<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 { if !unique[v] { unique[v] = true } } var uniqueVisits []visit for v := range unique { uniqueVisits = append(uniqueVisits, v) } fmt.Println(uniqueVisits)</code>
Output
Kedua-dua kaedah akan mengeluarkan hasil yang sama:
[visit{1 100} visit{2 2} visit{1 1}]
Pilih kaedah yang paling sesuai dengan anda keperluan pelaksanaan tertentu. Kaedah perbandingan manual menyediakan kawalan terperinci ke atas perbandingan elemen, manakala kaedah berasaskan set menawarkan kesederhanaan dan kecekapan.
Atas ialah kandungan terperinci Bagaimana untuk Cari Item Unik dalam Go Slice atau Array?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!