golang 将函数作为参数输入
时间: 2023-12-10 17:02:34 浏览: 86
函数作为参数
在 Golang 中,函数是一等公民,可以像任何其他类型的变量一样作为参数传递给函数。这种将函数作为参数传递的方式称为函数式编程。
下面是一个简单的例子,演示如何将函数作为参数传递给另一个函数:
```go
package main
import "fmt"
func main() {
nums := []int{1, 2, 3, 4, 5}
// 使用函数作为参数调用另一个函数
result := sum(nums, func(n int) bool {
return n%2 == 0
})
fmt.Println(result) // 输出:6
}
func sum(nums []int, f func(int) bool) int {
var sum int
for _, n := range nums {
if f(n) {
sum += n
}
}
return sum
}
```
在上面的例子中,我们定义了一个 `sum` 函数,它接收两个参数,一个整数数组和一个函数类型的参数 `f`。函数 `sum` 遍历整数数组,并根据函数 `f` 的返回值决定是否将数组中的元素相加。函数 `f` 接收一个整数参数并返回一个布尔值,表示该整数是否应该被相加。
在 `main` 函数中,我们调用 `sum` 函数并将一个匿名函数作为参数传递给它。这个匿名函数检查一个整数是否是偶数,并返回一个布尔值。最终,`sum` 函数返回所有偶数的和,输出结果为 `6`。
阅读全文