首页 > 文章列表 > golang函数方法作为参数传递

golang函数方法作为参数传递

参数传递 golang
241 2024-04-23

Go 函数方法作为参数传递:Go 函数可作为其他函数的参数传递。可以将代码组织成模块化且可重用的片段。实战案例:可以使用打印函数作为参数打印切片元素。

golang函数方法作为参数传递

Go 语言中函数方法作为参数的传递

Go 中的函数是一个一等公民,因此它们可以作为其他函数的参数进行传递。这允许您将代码组织成模块化且可重用的片段。

语法

func f(a int, fn func(int)) {
    fn(a)
}

在这个示例中,f 函数接收两个参数:一个int 和一个函数类型为 func(int) 的函数。

实战案例:打印切片元素

让我们编写一个函数来打印切片元素,该函数将打印函数作为参数接收。

package main

import "fmt"

// PrintSlice 使用给定的打印函数打印切片元素
func PrintSlice(s []int, fn func(int)) {
    for _, v := range s {
        fn(v)
    }
}

func main() {
    numbers := []int{1, 2, 3, 4, 5}

    // 使用 lambda 表达式打印元素
    PrintSlice(numbers, func(n int) { fmt.Println(n) })

    // 使用命名函数打印元素
    PrintSlice(numbers, func(x int) { fmt.Printf("%d ", x) })
}

输出:

1
2
3
4
5
1 2 3 4 5 

在本例中,PrintSlice 函数接受一个切片和一个打印函数。然后,它循环遍历切片,并将每个元素传递给打印函数。