So finden Sie Array-Elemente wie Pythons „if x in“-Konstrukt in Go
In Python können Sie leicht überprüfen, ob ein Element vorhanden ist in einem Array mit dem Konstrukt „if x in“. Bietet Go einen ähnlichen Mechanismus zum Überprüfen der Array-Mitgliedschaft, ohne das gesamte Array zu durchlaufen?
Antwort
Go verfügt nicht über ein direktes Äquivalent von Pythons „if x in“ Konstrukt für Arrays. Ab Go 1.18 können Sie jedoch die Funktion slices.Contains für Slices verwenden, um ein ähnliches Ergebnis zu erzielen:
if slices.Contains(array, x) { // do something }
Pre-Go 1.18 Solution
Vor Go 1.18 gab es keinen integrierten Operator zum Überprüfen der Array-Mitgliedschaft. Sie mussten über das Array iterieren und eine benutzerdefinierte Funktion wie die folgende verwenden:
func stringInSlice(a string, list []string) bool { for _, b := range list { if b == a { return true } } return false }
Alternativer Ansatz: Karten
Um die Notwendigkeit einer Iteration zu vermeiden, können Sie dies tun Verwenden Sie eine Karte anstelle eines Arrays oder Slice:
visitedURL := map[string]bool{ "http://www.google.com": true, "https://paypal.com": true, } if visitedURL[thisSite] { fmt.Println("Already been here.") }
Das obige ist der detaillierte Inhalt vonHat Go ein Äquivalent zu Pythons „if x in' für die Array-Mitgliedschaft?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!