Heim >Backend-Entwicklung >Golang >Wie kann ich die Listenmitgliedschaft in Go effizient überprüfen?

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

Patricia Arquette
Patricia ArquetteOriginal
2024-11-27 16:30:14212Durchsuche

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")
}

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!

Stellungnahme:
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