Wie kann ich die Listenmitgliedschaft in Go effizient überprüfen?

Patricia Arquette
Freigeben: 2024-11-27 16:30:14
Original
115 Leute haben es durchsucht

How Can I Efficiently Check List Membership in Go?

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")
}
Nach dem Login kopieren

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")
}
Nach dem Login kopieren

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
}
Nach dem Login kopieren

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}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage