Gos Antwort auf Pythons „if x in“-Konstrukt
Bei der Programmierung ist es oft notwendig, die Existenz eines Elements innerhalb von a zu überprüfen Sammlung. In Python lässt sich dies übersichtlich mit dem Konstrukt „if x in“ bewerkstelligen. Bietet Go jedoch einen ähnlichen Mechanismus?
Implementierung der Funktionalität
Go fehlt leider ein eingebautes „if x in“-Konstrukt. Diese Funktionalität kann jedoch auf zwei Arten implementiert werden:
1. Verwenden von Slices.Contains (Go 1.18 und höher)
Seit Go 1.18 stellt die Sprache die Funktion „slices.Contains“ bereit, mit der überprüft werden kann, ob ein bestimmtes Element innerhalb eines Slice vorhanden ist:
package main func main() { arr := []int{1, 2, 3} fmt.Println(slices.Contains(arr, 2)) // True }
2. Verwenden einer benutzerdefinierten Funktion (Go-Versionen vor 1.18)
Vor Go 1.18 mussten Sie Ihre eigene Funktion definieren, um diese Prüfung durchzuführen. Hier ist ein Beispiel:
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 }
Optimieren mit Karten
Wenn Sie häufig Mitgliedschaftsprüfungen durchführen, empfiehlt es sich, eine Karte anstelle eines Arrays oder Slice zu verwenden. Karten ermöglichen Suchvorgänge in konstanter Zeit und verbessern so die Leistung erheblich.
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.") } }
Während Go kein exaktes Äquivalent zu Pythons „if x in“-Konstrukt hat, bieten die oben genannten Ansätze flexible Lösungen für die Überprüfung der Elementexistenz in verschiedenen Szenarien .
Das obige ist der detaillierte Inhalt vonWie handhabt Go Mitgliedschaftsprüfungen wie Pythons „if x in'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!