Heim > Backend-Entwicklung > Golang > Wie handhabt Go Mitgliedschaftsprüfungen wie Pythons „if x in'?

Wie handhabt Go Mitgliedschaftsprüfungen wie Pythons „if x in'?

Barbara Streisand
Freigeben: 2024-12-18 17:19:11
Original
361 Leute haben es durchsucht

How Does Go Handle Membership Checks Like Python's

Gos Antwort auf Pythons „if x in“-Konstrukt

Bei der Programmierung ist es oft notwendig, die Existenz eines Elements innerhalb von a zu überprüfen Sammlung. In Python lässt sich dies übersichtlich mit dem Konstrukt „if x in“ bewerkstelligen. Bietet Go jedoch einen ähnlichen Mechanismus?

Implementierung der Funktionalität

Go fehlt leider ein eingebautes „if x in“-Konstrukt. Diese Funktionalität kann jedoch auf zwei Arten implementiert werden:

1. Verwenden von Slices.Contains (Go 1.18 und höher)

Seit Go 1.18 stellt die Sprache die Funktion „slices.Contains“ bereit, mit der überprüft werden kann, ob ein bestimmtes Element innerhalb eines Slice vorhanden ist:

package main

func main() {
    arr := []int{1, 2, 3}
    fmt.Println(slices.Contains(arr, 2)) // True
}
Nach dem Login kopieren

2. Verwenden einer benutzerdefinierten Funktion (Go-Versionen vor 1.18)

Vor Go 1.18 mussten Sie Ihre eigene Funktion definieren, um diese Prüfung durchzuführen. Hier ist ein Beispiel:

package main

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

func main() {
    arr := []string{"a", "b", "c"}
    fmt.Println(stringInSlice("b", arr)) // True
}
Nach dem Login kopieren

Optimieren mit Karten

Wenn Sie häufig Mitgliedschaftsprüfungen durchführen, empfiehlt es sich, eine Karte anstelle eines Arrays oder Slice zu verwenden. Karten ermöglichen Suchvorgänge in konstanter Zeit und verbessern so die Leistung erheblich.

package main

func main() {
    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

Während Go kein exaktes Äquivalent zu Pythons „if x in“-Konstrukt hat, bieten die oben genannten Ansätze flexible Lösungen für die Überprüfung der Elementexistenz in verschiedenen Szenarien .

Das obige ist der detaillierte Inhalt vonWie handhabt Go Mitgliedschaftsprüfungen wie Pythons „if x in'?. 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