Heim >Backend-Entwicklung >Golang >Hat Go ein Äquivalent zu Pythons „if x in' für die Array-Mitgliedschaft?

Hat Go ein Äquivalent zu Pythons „if x in' für die Array-Mitgliedschaft?

Susan Sarandon
Susan SarandonOriginal
2024-12-27 01:04:09225Durchsuche

Does Go Have an Equivalent to Python's

So finden Sie Array-Elemente wie Pythons „if x in“-Konstrukt in Go

In Python können Sie leicht überprüfen, ob ein Element vorhanden ist in einem Array mit dem Konstrukt „if x in“. Bietet Go einen ähnlichen Mechanismus zum Überprüfen der Array-Mitgliedschaft, ohne das gesamte Array zu durchlaufen?

Antwort

Go verfügt nicht über ein direktes Äquivalent von Pythons „if x in“ Konstrukt für Arrays. Ab Go 1.18 können Sie jedoch die Funktion slices.Contains für Slices verwenden, um ein ähnliches Ergebnis zu erzielen:

if slices.Contains(array, x) {
    // do something
}

Pre-Go 1.18 Solution

Vor Go 1.18 gab es keinen integrierten Operator zum Überprüfen der Array-Mitgliedschaft. Sie mussten über das Array iterieren und eine benutzerdefinierte Funktion wie die folgende verwenden:

func stringInSlice(a string, list []string) bool {
    for _, b := range list {
        if b == a {
            return true
        }
    }
    return false
}

Alternativer Ansatz: Karten

Um die Notwendigkeit einer Iteration zu vermeiden, können Sie dies tun Verwenden Sie eine Karte anstelle eines Arrays oder Slice:

visitedURL := map[string]bool{
    "http://www.google.com": true,
    "https://paypal.com": true,
}
if visitedURL[thisSite] {
    fmt.Println("Already been here.")
}

Das obige ist der detaillierte Inhalt vonHat Go ein Äquivalent zu Pythons „if x in' für die Array-Mitgliedschaft?. 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