Go语言学习之匿名函数

函数可以分为:匿名函数和普通函数

匿名函数的使用:

匿名函数就是没有名字的函数,它只有函数逻辑体,而没有函数名

定义的格式如下

func(参数列表)(返回参数列表){
    函数体
}

一个名字实际上没多大区别,所有使用匿名函数都可以改成普通函数,那么什么情况下会使用匿名函数呢

定义变量名,是一个不难,但是费脑子的事情,对于那种只使用一次的函数,是没必要拥有名字的,所以才有了匿名函数

匿名函数只有短暂的生命,一般都是定义后立即使用

就像这样定义后,立马执行

//把100当作参数传进去
func(data int) {
    fmt.Println(data)
}(100)
-------------------------结果------------
100

或者作为回调函数使用:

// 第二个参数为函数
func visit(list []int, f func(int)) {
    for _, v := range list {
        // 执行回调函数
        f(v)
    }
}
func main() {
    // 使用匿名函数直接做为参数
    visit([]int{1, 2, 3, 4}, func(v int) {
        fmt.Println(v)
    })
}