在Go语言中,高阶函数是指接受一个或多个函数作为参数,或者返回一个函数作为结果的函数。要实现这个功能,你可以使用匿名函数(闭包)或者函数类型。下面是一些示例:
- 使用匿名函数(闭包):
package main
import (
"fmt"
)
// 高阶函数,接受一个整数和一个匿名函数作为参数
func add(a int, f func(int) int) int {
return a + f(a)
}
func main() {
// 使用匿名函数作为参数
addFive := add(5, func(x int) int {
return x + 5
})
fmt.Println(addFive) // 输出:10
}
- 使用函数类型:
package main
import (
"fmt"
)
// 定义一个函数类型
type Function func(int) int
// 高阶函数,接受一个整数和一个函数类型作为参数
func add(a int, f Function) int {
return a + f(a)
}
func main() {
// 使用函数类型作为参数
addFive := add(5, Function(func(x int) int {
return x + 5
}))
fmt.Println(addFive) // 输出:10
}
在这两个示例中,我们定义了一个名为add
的高阶函数,它接受一个整数和一个函数作为参数。在main
函数中,我们使用匿名函数和函数类型分别调用了add
函数。