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 feishuai.vip")
}()
}
输出:
Welcome! to feishuai.vip
重要事项:
在Go语言中,可以将匿名函数分配给变量。将函数分配给变量时,变量的类型就是函数类型,您可以像调用函数一样调用该变量,如以下示例所示。
package main import "fmt" func main() { // 分配一个匿名函数到一个变量 value := func(){ fmt.Println("Welcome! to feishuai.vip") } value() }
输出:
Welcome! to feishuai.vip
您也可以在匿名函数中传递参数。
package main import "fmt" func main() { //在匿名函数传递参数 func(ele string){ fmt.Println(ele) }("sfjvip") }
输出:
sfjvip
您还可以将匿名函数作为参数传递给其他函数。
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) }
输出:
sfjvip
您还可以从另一个函数返回匿名函数。
package main import "fmt" //返回匿名函数 func GFG() func(i, j string) string{ myf := func(i, j string)string{ return i + j + "sfjvip" } return myf } func main() { value := GFG() fmt.Println(value("Welcome ", "to ")) }
输出:
Welcome to sfjvip