Heim > Backend-Entwicklung > Golang > Go-Sprachgenerika implementieren die Unterstützung mehrerer Typen

Go-Sprachgenerika implementieren die Unterstützung mehrerer Typen

王林
Freigeben: 2024-04-03 11:21:01
Original
1138 Leute haben es durchsucht

Go-Sprachgenerika bieten Unterstützung für mehrere Typen, sodass Entwickler Code erstellen können, der für mehrere Typen verwendet werden kann. Die generische Syntax deklariert einen generischen Typ durch Angabe von Typparametern im Typnamen und leitet die Typparameter automatisch in Funktionsaufrufen ab. Generics unterstützen vergleichbare Typen und können zum Erstellen allgemeiner Algorithmen und Funktionen verwendet werden, beispielsweise des universellen Sortieralgorithmus, der benutzerdefinierte Vergleichsfunktionen zum Sortieren verschiedener Typen verwendet.

Go-Sprachgenerika implementieren die Unterstützung mehrerer Typen

Go-Sprachgenerika implementieren Unterstützung für mehrere Typen.

Go-Sprachgenerika haben in Version 1.18 die Generikafunktion eingeführt, die es Entwicklern ermöglicht, Code zu erstellen, der für mehrere Typen verwendet werden kann. Generics können die Wiederverwendbarkeit und Flexibilität von Code verbessern.

Generische Syntax

Beim Deklarieren eines generischen Typs müssen Sie die Typparameter in eckigen Klammern im Typnamen angeben:

func Max[T comparable](a, b T) T {
    if a > b {
        return a
    }
    return b
}
Nach dem Login kopieren

Bei Verwendung eines generischen Typs in einem Funktionsaufruf leitet der Golang-Compiler automatisch die Typparameter ab:

fmt.Println(Max(1, 2)) // 输出:2
fmt.Println(Max(1.2, 3.4)) // 输出:3.4
fmt.Println(Max("Hello", "Wolrd")) // 输出:Wolrd
Nach dem Login kopieren

Es ​​ist zu beachten, dass generische Typen nur vergleichbare Typen unterstützen (comparable).

Praktischer Fall: Universeller Sortieralgorithmus

Mithilfe von Generika können wir einen universellen Sortieralgorithmus erstellen, der für jeden Typ funktioniert:

func Sort[T any](arr []T, less func(T, T) bool) {
    for i := 0; i < len(arr); i++ {
        for j := 0; j < len(arr)-1-i; j++ {
            if less(arr[j], arr[j+1]) {
                arr[j], arr[j+1] = arr[j+1], arr[j]
            }
        }
    }
}
Nach dem Login kopieren

Mit benutzerdefinierten Vergleichsfunktionen können wir diesen Sortieralgorithmus für verschiedene Typen verwenden:

func SortInts(arr []int) {
    Sort(arr, func(a, b int) bool { return a < b })
}

func SortStrings(arr []string) {
    Sort(arr, func(a, b string) bool { return a < b })
}
Nach dem Login kopieren

Zusammenfassung

Die generische Funktion in der Go-Sprache bietet leistungsstarke Unterstützung für mehrere Typen und ermöglicht es Entwicklern, wiederverwendbaren und flexiblen Code zu erstellen. Mithilfe der oben vorgestellten Techniken können wir auf einfache Weise allgemeine Algorithmen und Funktionen erstellen, die für viele Typen funktionieren.

Das obige ist der detaillierte Inhalt vonGo-Sprachgenerika implementieren die Unterstützung mehrerer Typen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage