Funkcja anonimowa Golang

Funkcja anonimowa Golang

Anonimowy odnosi się do funkcji, która nie ma nazwy. Ten typ funkcji jest również znany jako funkcja literalna lub funkcja Lambda w innych językach programowania.

Go pozwala na tworzenie funkcji wbudowanych lub anonimowych do użytku krótkoterminowego, jak pokażemy w tym samouczku.

Golang deklaruje funkcję anonimową

Możemy zadeklarować anonimową funkcję w tak samo, jak w przypadku deklarowania normalnej funkcji.

Na przykład poniższy kod tworzy funkcję anonimową w głównej funkcji.

Pakiet Main
importować „fmt”
func main ()
func ()
fmt.Println („Nie mam nazwy”)

Golang wywołuje funkcję anonimową

Po ogłoszeniu funkcji anonimowej możemy natychmiast wywołać, jak pokazano w poniższym przykładzie:

Pakiet Main
importować „fmt”
func main ()
func ()
fmt.Println („Nie mam nazwy”)
() // wywołuje func

Powyższy kod powinien wykonać kod w funkcji anonimowej i zwrócić ciąg jako:

$ idź uruchom anonimowe_funkcje.Iść
Nie mam imienia

Funkcja anonimowa Golang Przypróbuj zmienną

Możemy również przypisać funkcję anonimową do zmiennej i wywołać ją za pomocą nazwy zmiennej. Rozważ poniższy przykład:

Pakiet Main
importować „fmt”
func main ()
str: = func ()
fmt.Println („hi”)

str ()

W powyższym przykładzie tworzymy zmienną o nazwie „Str” i przypisujemy ją do funkcji anonimowej. Możemy użyć nazwy zmiennej, aby wywołać funkcję.

Argumenty Golang Pass do funkcji anonimowej

Podobnie jak typowa funkcja w Go, możemy przekazać dowolną liczbę argumentów (dowolnego typu) do funkcji anonimowej, jak pokazano w poniższym kodzie przykładowym:

Pakiet Main
importować „fmt”
func main ()
func (float64)
fmt.Printf („wynik: %f”, a*3.141)
(7.0)

W powyższym przykładzie przekazujemy argument typu float64 do funkcji anonimowej. Po wywołaniu funkcji przekazujemy argument wymagany.

Powyższy kod zwraca:

Wynik: 21.987000

Golang zwraca anonimową funkcję z innej funkcji

Go pozwala również zwrócić funkcję anonimową z innej funkcji. Przykładem jest to, jak pokazano w poniższym kodzie:

Pakiet Main
importować „fmt”
func main ()
anon_func: = func () func (x int)
wynik: = func (x int)
fmt.Println („wynik:”, x)

Wynik zwrotu

y: = anon_func ()
y (2)

Powyższy kod zwraca 2.

Wniosek

Ten przewodnik przechodzi przez podstawy pracy z anonimowymi funkcjami w języku programowania Go.