在 Go 语言中,高阶函数是指可以接受函数作为参数或返回函数的函数。这种特性使得 Go 能够实现许多强大的编程模式,例如函数组合、回调等。以下是对高阶函数的详细介绍及示例。
package main
import (
"fmt"
)
// 定义一个高阶函数,接受一个函数作为参数
func applyOperation(a int, b int, operation func(int, int) int) int {
return operation(a, b)
}
// 定义一些简单的操作函数
func add(x int, y int) int {
return x + y
}
func multiply(x int, y int) int {
return x * y
}
func main() {
result1 := applyOperation(3, 4, add)
result2 := applyOperation(3, 4, multiply)
fmt.Println("Addition:", result1) // 输出: Addition: 7
fmt.Println("Multiplication:", result2) // 输出: Multiplication: 12
}
package main
import (
"fmt"
)
// 返回一个函数
func makeMultiplier(factor int) func(int) int {
return func(x int) int {
return x * factor
}
}
func main() {
double := makeMultiplier(2) // 创建一个乘以 2 的函数
triple := makeMultiplier(3) // 创建一个乘以 3 的函数
fmt.Println("Double 5:", double(5)) // 输出: Double 5: 10
fmt.Println("Triple 5:", triple(5)) // 输出: Triple 5: 15
}