Golang 菜鳥教程

Golang 控制語句

Golang 函數(shù) & 方法

Golang 結(jié)構(gòu)體

Golang 切片 & 數(shù)組

Golang 字符串(String)

Golang 指針

Golang 接口

Golang 并發(fā)

Golang 異常(Error)

Golang 其他雜項

Go 語言匿名函數(shù)

Go語言提供了一種稱為匿名函數(shù)的特殊函數(shù)。匿名函數(shù)是不包含任何名稱的函數(shù)。當(dāng)您要創(chuàng)建內(nèi)聯(lián)函數(shù)時,此函數(shù)很有用。在Go語言中,匿名函數(shù)可以形成閉包。匿名函數(shù)也稱為函數(shù)字面量

語法:

    func(parameter_list) return_type {
        //代碼
        //如果給定return_type,則使用return語句
        //如果未提供return_type,則不
        //使用return語句
        return
    }()
package main 
  
import "fmt"
  
func main() { 
      
    //匿名函數(shù)
   func(){ 
  
      fmt.Println("Welcome! to (cainiaoplus.com)") 
  }() 
    
}

輸出:

Welcome! to (cainiaoplus.com)

重要事項:

  • 在Go語言中,可以將匿名函數(shù)分配給變量。將函數(shù)分配給變量時,變量的類型就是函數(shù)類型,您可以像調(diào)用函數(shù)一樣調(diào)用該變量,如以下示例所示。

    package main 
      
    import "fmt"
      
    func main() { 
          
        // 分配一個匿名函數(shù)到一個變量
       value := func(){ 
          fmt.Println("Welcome! to (cainiaoplus.com)") 
      } 
      value() 
        
    }

    輸出:

    Welcome! to (cainiaoplus.com)
  • 您也可以在匿名函數(shù)中傳遞參數(shù)。

    package main 
      
    import "fmt"
      
    func main() { 
          
        //在匿名函數(shù)傳遞參數(shù)
      func(ele string){ 
          fmt.Println(ele) 
      }("nhooo") 
        
    }

    輸出:

    nhooo
  • 您還可以將匿名函數(shù)作為參數(shù)傳遞給其他函數(shù)。

    package main 
      
    import "fmt"
      
      
      //匿名函數(shù)作為參數(shù)傳遞  
     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
  • 您還可以從另一個函數(shù)返回匿名函數(shù)。

    package main 
      
    import "fmt"
      
     //返回匿名函數(shù)
     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
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清