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