Golang 菜鸟教程

Golang 控制语句

Golang 函数 & 方法

Golang 结构体

Golang 切片 & 数组

Golang 字符串(String)

Golang 指针

Golang 接口

Golang 并发

Golang 异常(Error)

Golang 其他杂项

Go 语言匿名函数

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