匿名函数,顾名思义,没有函数名的函数。
匿名函数的定义格式如下:
func(参数列表)(返回参数列表){函数体}
匿名函数可以在使用函数的时候再声明
package mainimport "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}
