Die Verwendung von Golang-Generika kann durch die folgenden Methoden ersetzt werden: 1. Durch die Definition von Schnittstellen und die Verwendung von Schnittstellentypen als Parameter oder Rückgabetypen in Funktionen oder Methoden können abstrakte Operationen für verschiedene Typen erreicht werden Tools generieren bestimmte Codetypen, um generisches Verhalten zu erreichen. Der Vorlagencode muss jedoch im Voraus definiert werden und der Vorlagencode muss über das Generierungstool in bestimmte Codetypen konvertiert werden.
Das Betriebssystem dieses Tutorials: Windows 10-System, Dell G3-Computer.
Die Verwendung von Golang-Generika kann durch die folgenden Methoden ersetzt werden:
type MyGeneric interface { DoSomething() } func ProcessGeneric(g MyGeneric) { // 对泛型进行处理 g.DoSomething() }
//go:generate go run gen.go func ProcessGeneric(g GenericType) { // 处理泛型 } // gen.go package main import ( "fmt" "os" "text/template" ) type GenericType int func main() { tmpl := template.Must(template.New("").Parse(` type GenericType {{.}} `)) types := []string{"int", "string", "float64"} for _, t := range types { f, err := os.Create(fmt.Sprintf("generic_%s.go", t)) if err != nil { fmt.Println(err) continue } defer f.Close() tmpl.Execute(f, t) } }
In diesem Beispiel erstellen wir eine Vorlage vom Typ GenericType und verwenden das Codegenerierungstool, um spezifische Codedateien basierend auf verschiedenen Typen (int, string, float64) zu generieren.
Es ist zu beachten, dass es sich bei der oben genannten Methode um eine Kompromisslösung und nicht um eine offiziell unterstützte generische Implementierung handelt. Das Go-Sprachteam entwickelt derzeit Generika und startet möglicherweise in Zukunft den offiziellen generischen Support.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Golang-Generika. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!