Mengekalkan Rentetan Unik dalam Tatasusunan
Dalam kod yang disediakan, anda bertujuan untuk mencipta tatasusunan rentetan unik. Walau bagaimanapun, tatasusunan Go memerlukan elemen unik, menjadikannya mencabar untuk menguatkuasakan keunikan dengan rentetan yang ditambah secara dinamik. Ini menimbulkan persoalan tentang cara mencipta struktur data yang membenarkan nilai rentetan yang unik.
Menggunakan Peta sebagai Set
Memandangkan Go tidak mempunyai jenis data set asli, a peta boleh digunakan dengan berkesan untuk memenuhi tujuan ini. Keunikan utama Maps menyediakan asas untuk koleksi rentetan unik kami.
Pilihan 1: Peta dengan Nilai Boolean
Peta bukan kosong (benar) boleh mewakili satu set rentetan yang unik. Contohnya:
m := make(map[string]bool) m["aaa"] = true m["bbb"] = true m["bbb"] = true // Ignored as "bbb" already exists m["ccc"] = true
Pendekatan ini memberikan gambaran yang boleh dibaca dan intuitif bagi satu set.
Pilihan 2: Peta dengan Nilai Struktur
Untuk penggunaan memori yang minimum, peta dengan jenis nilai struct{} boleh digunakan. Memandangkan struct tidak menduduki memori, pilihan ini mengurangkan overhed memori dengan ketara.
m := make(map[string]struct{}) m["aaa"] = struct{}{} m["bbb"] = struct{}{} m["bbb"] = struct{}{} // Ignored as "bbb" already exists m["ccc"] = struct{}{}
Cara Menyemak Kewujudan
Untuk memastikan sama ada unsur hadir dalam set, anda boleh memanfaatkan nilai sifar bool atau simpulan bahasa koma-ok dengan struct pendekatan:
Pilihan 1:
exists := m["somevalue"] // If "somevalue" is in the map, exists is true; otherwise, false
Pilihan 2:
_, exists := m["somevalue"] // exists is true if "somevalue" is in the map; false otherwise
Memelihara Pesanan
Jika mengekalkan susunan sisipan adalah penting, pertimbangkan untuk menggunakan gabungan kepingan untuk memelihara ketenteraman dan peta untuk pengesahan keunikan. Contoh fungsi pembantu:
func add(s string) { if m[s] { return // Already in the map } a = append(a, s) m[s] = true }
Menggunakan pendekatan ini membolehkan anda membuat set rentetan unik yang teratur.
Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Susunan Rentetan Unik dalam Go dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!