golang 将函数作为参数输入函数
时间: 2023-12-05 17:03:25 浏览: 102
在 Go 语言中,函数也可以作为参数传递给另一个函数。这种函数作为参数的方式,常用于回调函数、函数式编程等场景。
下面是一个简单的例子,演示如何将函数作为参数传递:
```go
func apply(numbers []int, f func(int) int) []int {
result := make([]int, len(numbers))
for i, v := range numbers {
result[i] = f(v)
}
return result
}
func double(x int) int {
return x * 2
}
func main() {
numbers := []int{1, 2, 3, 4, 5}
doubledNumbers := apply(numbers, double)
fmt.Println(doubledNumbers) // [2 4 6 8 10]
}
```
在上面的例子中,我们定义了 `apply` 函数,该函数接受一个整数切片和一个函数作为参数。函数 `apply` 遍历整数切片中的每个元素,并将其传递给传入的函数 `f` 进行操作,最终返回操作后的切片。
我们还定义了一个 `double` 函数,用于将一个整数乘以 2。在 `main` 函数中,我们将 `numbers` 切片和 `double` 函数作为参数传递给 `apply` 函数,并将返回的切片打印出来,结果是 `[2 4 6 8 10]`。
需要注意的是,函数作为参数时,需要指定函数的类型。在上面的例子中,函数类型是 `func(int) int`,表示接受一个整数作为参数并返回一个整数。
阅读全文