go 匿名函数与其他语言基本上是无区别的,下面举个例子说明
package main import ( "fmt" ) func main() { a1,a2 := 1,2 rs := func(a int, b int) int { //()括号中是接受的参数 a1,a2 return a+b }(a1, a2) //() 括号中的是传入的参数 fmt.Println(rs) //调用匿名函数 结果输出3 //下面匿名函数不穿入参数,结果输出 rs2 func () { fmt.Println("rs2") }() //直接执行 //举例匿名函数自动执行 结果输出 3 func (a int,b int){ fmt.Println(a+b) }(a1, a2) e := getFun(a1, a2) //传入参数并输出结果 6 e() } func getFun(a int, b int) func () { r1 := a r2 := b r3 := 3 return func () { fmt.Println(r1+r2+r3) } }