温馨提示×

Go语言函数如何进行高阶函数

小樊
81
2024-11-08 14:13:14
栏目: 编程语言

在Go语言中,高阶函数是指接受一个或多个函数作为参数,或者返回一个函数作为结果的函数。要实现这个功能,你可以使用匿名函数(闭包)或者函数类型。下面是一些示例:

  1. 使用匿名函数(闭包):
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
}
  1. 使用函数类型:
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函数。

0