Effiziente Wertprüfung in Go-Listen mit Karten
Beim Umgang mit Listen in Go müssen Sie möglicherweise feststellen, ob ein Wert vorhanden ist innerhalb einer Liste. Während Python für diesen Zweck das praktische Schlüsselwort „in“ bietet, fehlt in Go ein direktes Äquivalent.
Ein Ansatz besteht darin, die Set-Sprache zu nutzen, bei der Sie jeden Wert einem beliebigen ganzzahligen Wert zuordnen. Diese Methode erfordert jedoch die Angabe eines nicht verwendeten ganzzahligen Werts, was umständlich sein kann.
Verwendung von Karten für eine effiziente Mengenmanipulation
Eine alternative Lösung besteht in der Verwendung einer Karte[Zeichenfolge ]bool als Menge. Indem Sie gültige Werte dem booleschen Wert „true“ zuordnen, können Sie die Mitgliedschaft wie folgt testen:
valid := map[string]bool{"red": true, "green": true, "yellow": true, "blue": true} if valid[x] { fmt.Println("found") }
Bei der Abfrage eines Schlüssels, der in der Zuordnung nicht vorhanden ist, wird der Standardwert „false“ zurückgegeben, der auf Abwesenheit hinweist .
Code mit Initialisierungsidiomen optimieren
Um den Initialisierungsprozess zu optimieren, sollten Sie die Verwendung in Betracht ziehen ein Stück gültiger Werte und eine For-Range-Schleife:
for _, v := range []string{"red", "green", "yellow", "blue"} { valid[v] = true }
Alternativ können Sie eine boolesche Ein-Buchstaben-Konstante für eine prägnante Initialisierung definieren:
const t = true valid := map[string]bool{"red": t, "green": t, "yellow": t, "blue": t}
Durch die Anwendung dieser Strategien können Sie Überprüfen Sie effizient die Wertmitgliedschaft in Go-Listen, ohne dass das Python-Schlüsselwort „in“ erforderlich ist, und nutzen Sie gleichzeitig die Funktionen des Go-Kartentyps für satzähnliche Funktionen.
Das obige ist der detaillierte Inhalt vonWie kann ich das Vorhandensein von Werten in Go-Listen effizient prüfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!