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 (cainiaoplus.com)") 
  }() 
    
}输出:
Welcome! to (cainiaoplus.com)
重要事项:
在Go语言中,可以将匿名函数分配给变量。将函数分配给变量时,变量的类型就是函数类型,您可以像调用函数一样调用该变量,如以下示例所示。
package main 
  
import "fmt"
  
func main() { 
      
    // 分配一个匿名函数到一个变量
   value := func(){ 
      fmt.Println("Welcome! to (cainiaoplus.com)") 
  } 
  value() 
    
}输出:
Welcome! to (cainiaoplus.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