1.什么是匿名函数

匿名函数是没有名字的函数。GO支持匿名函数,如果某个函数只是希望使用一次,可以考虑使用匿名函数,匿名函数也可以实现多次调用。

2.匿名函数使用方式

  1. 在定义匿名函数时就直接使用,这种方式匿名函数只能调用一次
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
package main

import "fmt"
	
func  main()  {
	//在定义匿名函数时直接调用
	//演示 求两个数的和 使用匿名函数的方法完成
	res1 := func (n1 int, n2 int) int {
		return n1+n2
	}(10,20) //10 赋值给n1 20赋值给n2
	fmt.Println("res1=",res1)
}

运行结果如下:

1
res1= 30

2.将匿名函数赋给一个变量(函数变量),在通过该变量来调用匿名函数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
package main

import "fmt"
	
func  main()  {
	//将匿名函数 func(n1 int, n2 int) int 赋值给 a 变量
	//则a的数据类型就是函数类型,此时我们可以通过a完成调用
	a := func (n1 int, n2 int) int {
		return n1-n2
	}
	res2 :=a(10,30)
	fmt.Println("res2=",res2)
}

运行结果如下

1
res2= -20

3.全局匿名函数的使用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
package main

import "fmt"

var (
	//fun1就是一个全局匿名函数
	Fun1 = func (n1 int,n2 int) int{
		return n1*n2
	}
)

func  main()  {
	//全局匿名函数的使用
	res3 := Fun1(4,9)
	fmt.Println("res4=",res3)
}

运行结果如下:

1
res4= 36