在 Go 语言中,函数可以是匿名的,也就是说函数可以在定义时不给它们命名。匿名函数可以在其他函数内部定义,并且可以被赋值给变量或作为参数传递给其他函数。匿名函数通常用于需要在程序中定义临时函数的情况。
定义匿名函数
在 Go 语言中,可以使用关键字 func
定义匿名函数,然后可以将其分配给变量或直接调用。匿名函数的语法如下:
func(parameters) return_type {
// function body
}
其中 parameters
表示函数参数,return_type
表示函数返回类型,函数体可以包含任何合法的 Go 代码。例如:
func(x, y int) int {
return x y
}
上面的例子定义了一个匿名函数,它接受两个整数参数并返回它们的和。
匿名函数也可以被赋值给变量:
代码语言:javascript复制add := func(x, y int) int {
return x y
}
sum := add(1, 2)
fmt.Println(sum) // 输出:3
在上面的例子中,匿名函数被赋值给变量 add
,然后可以像普通函数一样调用。
匿名函数还可以作为参数传递给其他函数。例如:
代码语言:javascript复制func apply(fn func(int) int, x int) int {
return fn(x)
}
double := func(x int) int {
return x * 2
}
result := apply(double, 3)
fmt.Println(result) // 输出:6
在上面的例子中,定义了一个函数 apply
,它接受一个函数和一个整数作为参数,并将整数作为参数传递给函数。然后定义了一个匿名函数 double
,它接受一个整数并返回它的两倍。最后将匿名函数 double
作为参数传递给函数 apply
。