English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O Go oferece uma função especial chamada função anônima. A função anônima não possui nenhum nome. É útil criar funções inline. Nas funções Go, as funções anônimas podem formar closures. As funções anônimas também são conhecidas comoFunção literal.
Sintaxe:
func(parameter_list) return_type { //Código //Se fornecido return_type, use a instrução return //Se não for fornecido return_type, não //Uso da instrução return return }()
package main import "fmt" func main() { //Função anônima func() fmt.Println("Bem-vindo! a oldtoolbag.com") }() }
Saída:
Bem-vindo! a oldtoolbag.com
Ponto importante:
No Go, você pode atribuir uma função anônima a uma variável. Quando você atribui uma função a uma variável, o tipo da variável é o tipo da função, você pode chamá-la como uma variável, como no exemplo a seguir.
package main import "fmt" func main() { // Atribuir uma função anônima a uma variável value := func(){ fmt.Println("Bem-vindo! a oldtoolbag.com") } value() }
Saída:
Bem-vindo! a oldtoolbag.com
Você também pode passar parâmetros para uma função anônima.
package main import "fmt" func main() { //Passando parâmetros para função anônima func(ele string){ fmt.Println(ele) }("w3codebox") }
Saída:
w3codebox
Você também pode passar uma função anônima como parâmetro para outra função.
package main import "fmt" //Função anônima como parâmetro 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) }
Saída:
w3codebox
Você também pode retornar uma função anônima de outra função.
package main import "fmt" //Retorna função anônima 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("Bem-vindo a", " ")) }
Saída:
Bem-vindo a w3codebox