匿名函数,顾名思义,没有函数名的函数。
匿名函数的定义格式如下:
func(参数列表)(返回参数列表){
函数体
}
匿名函数可以在使用函数的时候再声明
package main
import "fmt"
func main() {
// (1) 无返回值
(func() {
fmt.Println("hello qigaogao")
})()
// (2) 有返回值
z := (func(x, y int) int {
return x + y
})(1, 2)
fmt.Println(z)
}
也可以将匿名函数作为一个 func 类型数据赋值给变量
var f = func() {
fmt.Println("gaogao")
}
fmt.Println(reflect.TypeOf(f)) // func()
f() //赋值调用
Go语言不支持在函数内部声明普通函数,只能声明匿名函数
func foo() {
fmt.Println("foo功能")
// 不支持普通函数,只能声明匿名函数
f := func() {
fmt.Println("bar功能")
}
fmt.Println(f)
}
func main() {
foo() // foo功能 0x10a3260
}