Go语言提供了一种称为匿名函数的特殊函数。匿名函数是不包含任何名称的函数。当您要创建内联函数时,此函数很有用。在Go语言中,匿名函数可以形成闭包。匿名函数也称为函数字面量。
语法:
func(parameter_list) return_type { //代码 //如果给定return_type,则使用return语句 //如果未提供return_type,则不 //使用return语句 return }()
package main import "fmt" func main() { //匿名函数 func(){ fmt.Println("Welcome! to (thinktus.com)") }() }
输出:
Welcome! to (thinktus.com)
重要事项:
在Go语言中,可以将匿名函数分配给变量。将函数分配给变量时,变量的类型就是函数类型,您可以像调用函数一样调用该变量,如以下示例所示。
package main import "fmt" func main() { // 分配一个匿名函数到一个变量 value := func(){ fmt.Println("Welcome! to (thinktus.com)") } value() }
输出:
Welcome! to (thinktus.com)
您也可以在匿名函数中传递参数。
package main import "fmt" func main() { //在匿名函数传递参数 func(ele string){ fmt.Println(ele) }("nhooo") }
输出:
nhooo
您还可以将匿名函数作为参数传递给其他函数。
package main import "fmt" //匿名函数作为参数传递 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) }
输出:
nhooo
您还可以从另一个函数返回匿名函数。
package main import "fmt" //返回匿名函数 func GFG() func(i, j string) string{ myf := func(i, j string)string{ return i + j + "nhooo" } return myf } func main() { value := GFG() fmt.Println(value("Welcome ", "to ")) }
输出:
Welcome to nhooo