Jawapan Go kepada Konstruk "if x in" Python
Dalam pengaturcaraan, selalunya perlu untuk menyemak kewujudan elemen dalam koleksi. Dalam Python, ini boleh dicapai secara ringkas menggunakan binaan "jika x dalam". Walau bagaimanapun, adakah Go menyediakan mekanisme yang serupa?
Melaksanakan Kefungsian
Malangnya, Go tidak mempunyai binaan "jika x dalam" terbina dalam. Walau bagaimanapun, kefungsian ini boleh dilaksanakan dalam dua cara:
1. Menggunakan Slices.Contains (Go 1.18 and Higher)
Sejak Go 1.18, bahasa menyediakan fungsi slice.Contains, yang boleh digunakan untuk menyemak sama ada unsur yang diberikan wujud dalam kepingan:
package main func main() { arr := []int{1, 2, 3} fmt.Println(slices.Contains(arr, 2)) // True }
2. Menggunakan Fungsi Tersuai (Versi Go Sebelum 1.18)
Sebelum Pergi 1.18, anda perlu menentukan fungsi anda sendiri untuk melakukan semakan ini. Berikut ialah contoh:
package main func stringInSlice(a string, list []string) bool { for _, b := range list { if b == a { return true } } return false } func main() { arr := []string{"a", "b", "c"} fmt.Println(stringInSlice("b", arr)) // True }
Mengoptimumkan dengan Peta
Jika anda kerap melakukan semakan keahlian, anda disyorkan untuk menggunakan peta dan bukannya tatasusunan atau kepingan. Peta menyediakan carian masa berterusan, meningkatkan prestasi dengan ketara.
package main func main() { visitedURL := map[string]bool{ "http://www.google.com": true, "https://paypal.com": true, } if visitedURL[thisSite] { fmt.Println("Already been here.") } }
Walaupun Go tidak mempunyai persamaan yang tepat dengan binaan "jika x dalam" Python, pendekatan yang disebutkan di atas menyediakan penyelesaian yang fleksibel untuk menyemak kewujudan elemen dalam pelbagai senario .
Atas ialah kandungan terperinci Bagaimanakah Go Mengendalikan Pemeriksaan Keahlian Seperti 'jika x in' Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!