Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung von Funktionen als Werte und Typen in Golang
-Tutorialspalte vorgestellt, um die Funktion in Golang als Wert und Typ vorzustellen. Ich hoffe, dass es den Freunden in Not hilfreich sein wird!
Einführung
Typkonvertierung von Funktionen
type_name(expression)Zum Beispiel:
package main import "fmt" type CalculateType func(int, int) // 声明了一个函数类型 // 该函数类型实现了一个方法 func (c *CalculateType) Serve() { fmt.Println("我是一个函数类型") } // 加法函数 func add(a, b int) { fmt.Println(a + b) } // 乘法函数 func mul(a, b int) { fmt.Println(a * b) } func main() { a := CalculateType(add) // 将add函数强制转换成CalculateType类型 b := CalculateType(mul) // 将mul函数强制转换成CalculateType类型 a(2, 3) b(2, 3) a.Serve() b.Serve() } // 5 // 6 // 我是一个函数类型 // 我是一个函数类型
Wie oben wird ein CalculateType-Funktionstyp deklariert und die Serve()-Methode implementiert und haben die gleichen Parameter. Add und mul müssen in den Funktionstyp CalculateType konvertiert werden, und beide Funktionen verfügen über die Serve()-Methode des Funktionstyps CalculateType.
Funktion zur Parameterübergabe
package main import "fmt" type CalculateType func(a, b int) int // 声明了一个函数类型 // 加法函数 func add(a, b int) int { return a + b } // 乘法函数 func mul(a, b int) int { return a * b } func Calculate(a, b int, f CalculateType) int { return f(a, b) } func main() { a, b := 2, 3 fmt.Println(Calculate(a, b, add)) fmt.Println(Calculate(a, b, mul)) } // 5 // 6
// HandleFunc registers the handler function for the given pattern // in the DefaultServeMux. // The documentation for ServeMux explains how patterns are matched. func HandleFunc(pattern string, handler func(ResponseWriter, *Request)) { DefaultServeMux.HandleFunc(pattern, handler) }Da HandlerFunc ein Funktionstyp ist und die Funktion sayHi denselben Parameterwert wie der Funktionstyp HandlerFunc hat, kann die Konvertierung von sayHi in HandlerFunc erzwungen werden. Daher verfügt sayHi auch über die Methode ServeHTTP (). Implementiert die Handler-Schnittstelle. Gleichzeitig führt die ServeHTTP-Methode von HandlerFunc die Funktion sayHi aus. Es ist ersichtlich, dass sayHi das Ausführungsergebnis nach dem Aufruf des Handlers ist.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Funktionen als Werte und Typen in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!