English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Go offre una funzione speciale chiamata funzione anonima. La funzione anonima non contiene alcun nome. Questa funzione è molto utile quando devi creare una funzione inline. In Go, la funzione anonima può formare un closure. La funzione anonima è anche chiamataFunzione letterale.
Sintassi:
func(parameter_list) return_type { //Codice //Se viene fornito return_type, utilizzare lo statement return //Se non viene fornito return_type, non //Utilizzo dello statement return return }()
package main import "fmt" func main() { //Funzione anonima func() fmt.Println("Benvenuto! a oldtoolbag.com") }() }
Output:
Benvenuto! a oldtoolbag.com
Cosa sapere:
In Go, puoi assegnare una funzione anonima a una variabile. Quando assegni una funzione a una variabile, il tipo della variabile è il tipo della funzione, puoi chiamare la variabile come se fosse una funzione, come nell'esempio seguente.
package main import "fmt" func main() { //Assegnazione di una funzione anonima a una variabile value := func(){ fmt.Println("Benvenuto! a oldtoolbag.com") } value() }
Output:
Benvenuto! a oldtoolbag.com
Puoi anche passare parametri in una funzione anonima.
package main import "fmt" func main() { //Passaggio di parametri in una funzione anonima func(ele string){ fmt.Println(ele) }("w3codebox") }
Output:
w3codebox
Puoi anche passare una funzione anonima come parametro a un'altra funzione.
package main import "fmt" //Passaggio di una funzione anonima come parametro 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) }
Output:
w3codebox
Puoi anche restituire una funzione anonima da un'altra funzione.
package main import "fmt" //Restituisce una funzione anonima func GFG() func(i, j string) string{ myf := func(i, j string) string{ return i + j + "w3codebox" } return myf } func main() { value := GFG() fmt.Println(value("Benvenuto in ", "to ")) }
Output:
Benvenuto in w3codebox