Checklistenmitgliedschaft in Go: Eine Alternative zum Python-Schlüsselwort „in“
In Python bietet das Schlüsselwort „in“ eine praktische Möglichkeit Möglichkeit, zu überprüfen, ob ein Wert in einer Liste vorhanden ist. Go bietet jedoch kein direktes Äquivalent.
Annäherung des Schlüsselworts „in“ mit einer Karte
Ein Ansatz in Go besteht darin, eine Karte[string] zu nutzen. bool als Darstellung einer Menge. Indem Sie gültige Werte als Schlüssel speichern und wahre Werte zuweisen, können Sie die Mitgliedschaft testen, indem Sie prüfen, ob ein Schlüssel in der Karte vorhanden ist:
valid := map[string]bool{"red": true, "green": true, "yellow": true, "blue": true} if valid[x] { fmt.Println("found") } else { fmt.Println("not found") }
Nullwerte verwenden
Nutzen Sie die Tatsache, dass der Nullwert für bool (false) zurückgegeben wird, wenn ein Schlüssel nicht in einer Karte gefunden wird. Dadurch können Sie auf die explizite Zuweisung wahrer Werte verzichten und so die Initialisierung vereinfachen:
valid := map[string]bool{"red", "green", "yellow", "blue"} if valid[x] { fmt.Println("found") } else { fmt.Println("not found") }
Optimierungen
Für Szenarien mit einer großen Anzahl gültiger Werte sollten Sie die Verwendung in Betracht ziehen eine for range-Schleife zum Initialisieren der Karte. Dies bietet eine kompakte Lösung:
for _, v := range []string{"red", "green", "yellow", "blue"} { valid[v] = true }
Zusätzlich können Sie den Code optimieren, indem Sie eine const-Variable definieren, um sich wiederholende boolesche Werte zu vermeiden:
const t = true valid := map[string]bool{"red": t, "green": t, "yellow": t, "blue": t}
Das obige ist der detaillierte Inhalt vonWie kann ich die Listenmitgliedschaft in Go effizient überprüfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!