Heim >Backend-Entwicklung >Golang >Verwendet Go leere Schnittstellen oder Typparameter für generische Funktionen?
Generische Funktionen in Go
In Go findet das Konzept der generischen Funktionen seine Umsetzung durch die Verwendung einer leeren Schnittstelle. Da keine zusätzlichen Methodenimplementierungen erforderlich sind, kann eine leere Schnittstelle jede Art von Wert speichern. Dies führt zu der Frage, ob dies Gos Ansatz zur Implementierung generischer Funktionen ist oder ob es eine geeignetere Alternative gibt.
Seit Go 1.18 wurde eine modernere und explizitere Methode zur Definition generischer Funktionen eingeführt. Es nutzt Typparameter, um die Typen anzugeben, mit denen die Funktion arbeiten kann. Betrachten Sie beispielsweise die folgende generische Funktion Drucken:
package main import ( "fmt" ) // T can be any type func Print[T any](s []T) { for _, v := range s { fmt.Print(v) } } func main() { // Passing list of string works Print([]string{"Hello, ", "world\n"}) // You can pass a list of int to the same function as well Print([]int{1, 2}) }
Ausgabe:
Hello, world 12
Diese Methode bietet eine sauberere und explizitere Deklaration generischer Funktionen, wodurch sie einfacher zu verstehen und zu warten sind die Codebasis.
Das obige ist der detaillierte Inhalt vonVerwendet Go leere Schnittstellen oder Typparameter für generische Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!