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
Freigeben: 2024-12-27 01:04:09
Original
141 Leute haben es durchsucht

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

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

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

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!

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