go语言匿名函数,两种声明方法和使用方法
什么是匿名函数
go语言中的匿名函数,顾名思义,就是没有函数名的函数!与python的lambda有些类似,但不同。那这样的函数该怎么调用呢?这涉及到两种声明方法和对应的两种使用方法。
go匿名函数的两种声明方法和使用方法
go的匿名函数在计算机内存当中无法单独存在,所以必须在声明的同时直接调用,或通过赋值的方式赋值给一个分配有内存空间的变量,让变量来储存,并通过该变量来进行调用。
匿名函数的一般结构及调用方法
func(args args_type)(result result_type){
代码块
}(args)
匿名函数的第一种声明方法(基本结构)同go语言的一般函数基本类似,不过没有函数名,除此之外,代码块后的括号()是对匿名函数的调用,里面传递的是参数,如下实例:
package main
import "fmt"
func main() {
result := func(a int, b int) int {
c := a + b
return c
}(1, 2) //括号表示调用,并传入参数1和2
fmt.Println(result)
}
代码输出:
3
匿名函数的第二种声明方法及调用
go语言匿名函数的第二种声明方法,就是将声明的匿名函数赋值给一个变量,然后通过变量来调用这个函数。
package main
import "fmt"
func main() {
result := func(a int, b int) int {
c := a + b
return c
}
r := result(2, 3)
fmt.Println(r)
}
代码输出:
5