匿名函数
# 匿名函数
Go语言匿名函数--没有函数名字的函数 (opens new window)
# 介绍
匿名函数,即在需要使用函数时再定义函数,匿名函数没有函数名只有函数体,函数可以作为一种类型被赋值给函数类型的变量,匿名函数也往往以变量方式传递,这与C语言的回调函数比较类似,不同的是,Go语言支持随时在代码里定义匿名函数。
匿名函数是指不需要定义函数名的一种函数实现方式,由一个不带函数名的函数声明和函数体组成,下面来具体介绍一下匿名函数的定义及使用。
# 定义一个匿名函数
匿名函数的定义格式如下:
func(参数列表)(返回参数列表){
函数体
}
1
2
3
2
3
匿名函数的定义就是没有名字的普通函数定义。
# 在定义时调用匿名函数
匿名函数可以在声明后调用,例如:
package main
import "fmt"
func main() {
// 定义时调用匿名函数
v1 := func(a int, b int) int {
return a + b
}(100, 200)
fmt.Println(v1)
}
/*
300
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
(100,200)
,表示对匿名函数进行调用,传递参数为 100,200。
# 将匿名函数赋值给变量
匿名函数可以被赋值,例如:
package main
import "fmt"
func main() {
// 匿名函数赋值给变量
v2 := func(a int, b int) int {
return a - b
}
fmt.Println(v2(20, 10))
}
/*
10
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
匿名函数的用途非常广泛,它本身就是一种值,可以方便地保存在各种容器中实现回调函数和操作封装。
编辑 (opens new window)