概念
由一个不带函数名的函数声明和函数体组成
func(参数列表)返回值列表{
函数体
}
匿名函数可以直接赋值给一个变量或者直接执行,不能独立存在
- 在定义时直接执行
- 无参数匿名函数
func() 返回值列表{ 函数体 }() //()是对匿名函数的调用
- 有参数,在括号里加参数
func(参数列表)返回值列表{ 函数体 }(调用参数列表)
- 直接赋值给一个变量再调用
a:=func(){ 函数体 } a()
匿名函数用作回调函数
用户传入不同的匿名函数可以对函数的参数进行不同的操作
//funcName的参数列表里包含匿名函数
func funcName(f func(int),除匿名函数外的其他参数列表) {
//在函数体中针对其他参数进行匿名函数的操作
函数体
}
//调用函数,可以传入不同的匿名函数
funcName(f func(int),除匿名函数外的其他参数列表){
匿名函数的函数体
})
将函数作为返回值
func funcName(参数列表) func(匿名函数参数列表) 匿名函数返回值列表{
return func(匿名函数参数列表) 匿名函数返回值列表 {
return 匿名函数返回值列表
}
}
//调用funcName函数,返回值是匿名函数,赋值给a
a:= funcName(参数列表)
a(匿名函数参数列表)