-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)
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) }
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!