Cara Mengeluarkan Nilai Pendua dengan Cekap daripada Slices dalam Go
Pendatang baru untuk Go sering menghadapi cabaran untuk mengalih keluar nilai pendua daripada kepingan. Walaupun melelaran melalui kepingan dan menyemak pendua secara manual mungkin kelihatan seperti pendekatan yang berdaya maju, ia adalah tidak cekap. Artikel ini membentangkan penyelesaian optimum untuk mengalih keluar pendua secara umum dan khusus untuk rentetan dan integer.
Penyelesaian Generik
Fungsi generik berikut menggunakan peta untuk menjejaki elemen unik dan tambahkannya sewajarnya:
func removeDuplicate[T comparable](sliceList []T) []T { allKeys := make(map[T]bool) list := []T{} for _, item := range sliceList { if _, value := allKeys[item]; !value { allKeys[item] = true list = append(list, item) } } return list }
Penyelesaian Khusus Rentetan
Untuk kecekapan yang lebih baik, penyelesaian khusus rentetan boleh digunakan:
func removeDuplicateStr(strSlice []string) []string { allKeys := make(map[string]bool) list := []string{} for _, item := range strSlice { if _, value := allKeys[item]; !value { allKeys[item] = true list = append(list, item) } } return list }
Penyelesaian Khusus Integer
Begitu juga, penyelesaian khusus integer menawarkan pengoptimuman selanjutnya:
func removeDuplicateInt(intSlice []int) []int { allKeys := make(map[int]bool) list := []int{} for _, item := range intSlice { if _, value := allKeys[item]; !value { allKeys[item] = true list = append(list, item) } } return list }
Penggunaan
Fungsi ini boleh digunakan dengan menghantar kepingan yang mengandungi nilai pendua dan menerima kepingan baharu dengan hanya unik elemen:
// Sample usage cities := []string{"Mumbai", "Delhi", "Ahmedabad", "Mumbai", "Bangalore", "Delhi", "Kolkata", "Pune"} uniqueCities := removeDuplicate(cities)
Kesimpulan
Penyelesaian yang dibentangkan menyediakan kaedah optimum untuk mengalih keluar nilai pendua daripada kepingan dalam Go, membolehkan kod yang cekap dan prestasi optimum.
Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Nilai Pendua dengan Cekap daripada Go Slices?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!