以下是一个简单的 Go 函数式代码示例:
package main
import (
"fmt"
)
// 定义一个函数类型“IntOp”,接收两个 int 类型的参数并返回一个 int
type IntOp func(int, int) int
// 定义一个高阶函数“ApplyIntOp”,接收一个 IntOp 类型的参数和两个 int 类型的参数,
// 并返回用 IntOp 对两个 int 参数进行操作的结果
func ApplyIntOp(op IntOp, a, b int) int {
return op(a, b)
}
func main() {
// 定义一个加法操作函数“Add”
Add := func(a, b int) int {
return a + b
}
// 定义一个减法操作函数“Subtract”
Subtract := func(a, b int) int {
return a - b
}
// 定义一个乘法操作函数“Multiply”
Multiply := func(a, b int) int {
return a * b
}
// 使用“ApplyIntOp”高阶函数调用“Add”、“Subtract”、“Multiply”函数
fmt.Println(ApplyIntOp(Add, 3, 4)) // 输出 7
fmt.Println(ApplyIntOp(Subtract, 3, 4)) // 输出 -1
fmt.Println(ApplyIntOp(Multiply, 3, 4)) // 输出 12
}
在这个示例中,我们定义了一个函数类型“IntOp”,并定义了三个具体的函数类型“Add”、“Subtract”和“Multiply”。我们还定义了一个高阶函数“ApplyIntOp”,它接收一个 IntOp 类型的参数和两个 int 类型的参数,并返回用 IntOp 对两个 int 参数进行操作的结果。
在 main 函数中,我们使用“ApplyIntOp”高阶函数调用“Add”、“Subtract”和“Multiply”函数,并打印出它们的结果。
这个示例展示了 Go 中函数式编程风格的基本特点。我们通过定义函数类型和高阶函数,使得我们可以使用参数化的方式进行函数操作,从而实现更加灵活和可复用的代码。