Go语言 匿名函数实例

  Go语言支持匿名函数,即在需要使用函数时再定义函数,匿名函数没有函数名只有函数体,函数可以作为一种类型被赋值给函数类型的变量,匿名函数也往往以变量方式传递,这与C语言的回调函数比较类似,不同的是,Go语言支持随时在代码里定义匿名函数。

程序代码:

package main

import "fmt"

/*
遍历集合,通过给定函数进行访问
*/
func visit(list []int, f func(int)) {
    for _, v := range list {
        f(v)
    }
}

func main() {

    //直接声明匿名函数,并赋值
    func(data int) {
        fmt.Println("hi:", data)

    }(100)
    //将匿名函数声明后赋值给变量f,然后调用
    f := func(data int) {
        fmt.Println("hello:", data)

    }
    f(200)
    //使用匿名函数打印
    visit([]int{1, 7, 5, 8, 2}, func(num int) {
        fmt.Println(num)
    })
}

程序输出:

hi: 100
hello: 200
1
7
5
8
2

  注意:匿名函数需要定义在main方法中,否则程序报错。