Golang 匿名函数

介绍


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

匿名函数使用方式1:

在定义匿名函数时就直接调用,这样匿名函数就只能调用一次。

	n := func(a, b int) int{
		return a + b
	}(1, 2)
    fmt.Println(n)

上面就是匿名函数在定义的时候就完成了调用,定义就是func,调用就是传参了,这样就是在定义匿名函数的时候就调用了它。

匿名函数使用方式2:

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

	n := func(a, b int) int {
		return a + b
	}
	fmt.Println(n(1,2))

//将匿名函数func(abb  int)int赋给a变量,则a的数据类型就是函数类型,此时,我们可以通过a完成调用。

这样也实现了在main函数里面再定义了一个函数,也就是函数里面定义了函数。

全局匿名函数:

如果将匿名函数赋给一个全局变量,那么这个匿名函数,就成为一个全局匿名函数,可以在程序有效。 

func1就是全局匿名函数,那么这个函数就可以在任何地方使用了。

var (
	func1 = func(n1, n2 int) int {
		return n1 + n2
	}
)

func main() {
	n := func1(1,2)
	fmt.Println(n)
    fmt.Println(reflect.TypeOf(func1))  //func(int, int) int
}

猜你喜欢

转载自blog.csdn.net/qq_34556414/article/details/131188012