ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] 匿名函数,顾名思义没有函数名的函数 匿名函数的定义格式如下: ```go func (形参 形参类型) (返回值类型) { 函数体 } ``` ## 匿名函数示例 ```go func foo() { // 方法一 // 匿名函数定义 并 赋值给变量 f := func() { fmt.Println("方法一:我是匿名函数") } // 匿名函数调用 f() // 方法二 // 匿名函数定义并调用 (func() { fmt.Println("方法二:我是匿名函数") })() } func main() { foo() } ``` ## 函数的类型 ```go func bar() { // 匿名函数一 f1 := func() { fmt.Println("hello world") } fmt.Println("f1 type is:", reflect.TypeOf(f1)) // 匿名函数二 f2 := func(name string) { fmt.Println("hello", name) } fmt.Printf("f2 type is: %T\n", f2) // 匿名函数三 f3 := func(n1, n2 int) int { return n1 + n2 } fmt.Printf("f3 type is: %T\n", f3) } func main() { bar() } // 运行结果: // f1 type is: func() // f2 type is: func(string) // f3 type is: func(int, int) int ``` >[info] 以上三个匿名函数是不同类型。