Heim >Backend-Entwicklung >Golang >Wie kann ich mithilfe von Karten effizient das Vorhandensein von Werten in einer Go-Liste prüfen?

Wie kann ich mithilfe von Karten effizient das Vorhandensein von Werten in einer Go-Liste prüfen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-24 09:38:12812Durchsuche

How Can I Efficiently Check for Value Existence in a Go List Using Maps?

Überprüfen der Wertexistenz in einer Liste mithilfe von Go-Maps

Im Gegensatz zu Python gibt es in Go kein direktes Äquivalent zum Python-in-Schlüsselwort, um zu überprüfen, ob ein Wert vorhanden ist eine Liste. Es gibt jedoch effektive Möglichkeiten, dies mithilfe von Go-Maps zu erreichen.

Eine Methode besteht darin, eine Map mit Zeichenfolgenschlüsseln und booleschen Werten zu nutzen, wobei die Schlüssel gültige Werte darstellen und die booleschen Werte alle auf „true“ gesetzt sind. Um zu testen, ob ein Wert vorhanden ist, prüfen Sie einfach, ob der 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")
}

Eine andere Möglichkeit besteht darin, einen Slice zur Darstellung der gültigen Werte zu verwenden. Jedes Element im Slice würde einem gültigen Wert entsprechen. Anschließend können Sie den Slice durchlaufen und die Karte dynamisch mithilfe einer For-Range-Schleife erstellen:

for _, v := range []string{"red", "green", "yellow", "blue"} {
    valid[v] = true
}

Wenn die Leistung ein Problem darstellt, können Sie die Kartenerstellung weiter optimieren, indem Sie einen konstanten booleschen Wert verwenden:

const t = true
valid := map[string]bool{"red": t, "green": t, "yellow": t, "blue": t}

Mit diesem Ansatz können Sie mithilfe von Go-Maps effizient überprüfen, ob ein Wert in einer Liste vorhanden ist, ohne dass zusätzliche Dienstprogramme oder Codegenerierung erforderlich sind.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Karten effizient das Vorhandensein von Werten in einer Go-Liste prü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