一 点睛
Go 支持匿名函数,匿名函数就是没有名字的函数,如果我们某个函数只是希望使用一次,可以考虑使用匿名函数,匿名函数也可以实现多次调用。
二 匿名函数使用方式1
在定义匿名函数时就直接调用,这种方式匿名函数只能调用一次。
1 代码
package main
import (
"fmt"
)
func main() {
// 在定义匿名函数时就直接调用,这种方式匿名函数只能调用一次
// 求两个数的和,使用匿名函数的方式完成
res1 := func(n1 int, n2 int) int {
return n1 + n2
}(10, 20)
fmt.Println("res1=", res1)
}
2 测试
res1= 30
三 匿名函数使用方式2
将匿名函数赋给一个变量(函数变量),再通过该数变量来调用匿名函数。
1 代码
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)
res3 := a(90, 30)
fmt.Println("res3=", res3)
}
2 测试
res2= -20
res3= 60
四 全局匿名函数
如果将匿名函数赋给一个全局变量,那么这个匿名函数,就成为一个全局匿名函数,可以在程序有效。
1 代码
package main
import "fmt"
var (
// fun1就是一个全局匿名函数
Fun1 = func (n1 int, n2 int) int {
return n1 * n2
}
)
func main() {
// 全局匿名函数的使用
res4 := Fun1(4, 9)
fmt.Println("res4=", res4)
}
2 测试
res4= 36