高阶函数是接收函数作为参数或返回函数作为输出的函数。
高阶函数是可以通过将其他函数作为参数或通过将其返回来对其他函数进行操作的函数。
将函数作为参数传递给其他函数
package main
import "fmt"
func 和 (x, y int) int {
return x + y
}
func 部分总和(x int) func(int) int {
return func(y int) int {
return 和 (x, y)
}
}
func main() {
partial := 部分总和(3)
fmt.Println(partial(7))
}
运行上面的程序时,您应该看到以下输出:
C:\Golang>go run main.go
10
在上面的程序中 部分总和 函数返回一个 和 该函数接受两个int参数并返回一个int参数。
从其他函数返回函数
package main
import "fmt"
func 平方和(x int) func(int) func(int) int {
return func(y int) func(int) int {
return func(z int) int {
return x*x + y*y + z*z
}
}
}
func main() {
// 5*5 + 6*6 + 7*7
fmt.Println(squareSum(5)(6)(7))
}
运行上面的程序时,您应该看到以下输出:
C:\Golang>go run main.go
110
在上面的程序中 平方和 函数签名,指定函数返回两个函数和一个整数值。