Go语言中匿名函数是无名函数,可直接定义使用,常用于回调、闭包或传参;支持立即调用(IIFE)、赋值变量、作为参数或返回值。
Go语言中的匿名函数就是没有名字的函数,可以直接定义并使用,常用于回调、闭包或作为参数传递给其他函数。
匿名函数的定义形式和普通函数类似,只是省略了函数名:
func(参数列表) 返回类型 {例如,定义一个接收两个整数并返回其和的匿名函数:
func(a, b int) int {定义后紧跟括号即可立即执行:
func() {带参数的立即调用写法:
func(x string) {把匿名函数赋给一个变量(该变量类型是函数类型),之后像普通函数一样调用:
add := func(a, b int) int {注意:变量类型由匿名函数签名自动推导,无需显式声明函数类型(除非需要传参或做类型约束)。
匿名函数可直接作为参数传入其他函数,比如用在 sort.Slice 或 http.HandleFunc 中:
numbers := []int{3,
1, 4}也可作为函数返回值(构成闭包):
func makeAdder(base int) func(int) int {基本上就这些。匿名函数在Go里轻量灵活,关键在于理解它和变量、作用域、闭包的关系,用对了能写出更简洁清晰的代码。