Go 语言提供了一个称为匿名函数的特殊函数。匿名函数是不包含任何名称的函数。当您想创建内联函数时,它很有用。在 Go 语言中,匿名函数可以形成闭包。匿名函数也称为函数字面量。
句法:
func(parameter_list)(return_type){
// code..
// Use return statement if return_type are given
// if return_type is not given, then do not
// use return statement
return
}()
例子:
// Go program to illustrate how
// to create an anonymous function
package main
import "fmt"
func main() {
// Anonymous function
func(){
fmt.Println("Welcome! to GeeksforGeeks")
}()
}
输出:
Welcome! to GeeksforGeeks
要点:
- 在 Go 语言中,您可以将匿名函数分配给变量。当您将函数分配给变量时,变量的类型是函数类型,您可以像调用函数一样调用该变量,如下例所示。
例子:
// Go program to illustrate // use of an anonymous function package main import "fmt" func main() { // Assigning an anonymous // function to a variable value := func(){ fmt.Println("Welcome! to GeeksforGeeks") } value() }
输出:
Welcome! to GeeksforGeeks
- 您还可以在匿名函数传递参数。
例子:
// Go program to pass arguments // in the anonymous function package main import "fmt" func main() { // Passing arguments in anonymous function func(ele string){ fmt.Println(ele) }("GeeksforGeeks") }
输出:
GeeksforGeeks
- 您还可以将匿名函数作为参数传递给其他函数。
例子:
// Go program to pass an anonymous // function as an argument into // other function package main import "fmt" // Passing anonymous function // as an argument func GFG(i func(p, q string)string){ fmt.Println(i ("Geeks", "for")) } func main() { value:= func(p, q string) string{ return p + q + "Geeks" } GFG(value) }
输出:
GeeksforGeeks
- 您也可以从另一个函数返回一个匿名函数。
例子:
// Go program to illustrate // use of anonymous function package main import "fmt" // Returning anonymous function func GFG() func(i, j string) string{ myf := func(i, j string)string{ return i + j + "GeeksforGeeks" } return myf } func main() { value := GFG() fmt.Println(value("Welcome ", "to ")) }
输出:
Welcome to GeeksforGeeks