Анонимная функция в Go Language
#GOЯзык Go предоставляет специальную функцию, известную как анонимная функция. Анонимная функция — это функция, которая не содержит никакого имени. Это полезно, когда вы хотите создать встроенную функцию. В языке Go анонимная функция может образовывать замыкание. Анонимная функция также известна как литерал функции .
Синтаксис:
func(parameter_list)(retrun_type){
// code..
// Use return statement if return_type are given
// if return_type is not given, then do not
// use return statement
return
}()
Пример:
// Перейти к программе, чтобы проиллюстрировать, как
// создать анонимную функцию
package main
import "fmt"
func main() {
// Анонимная функция
func(){
fmt.Println("Welcome! to Data science")
}()
}
Выход:
Welcome! to Data science
Важные моменты:
- В языке Go вы можете назначить анонимную функцию переменной. Когда вы назначаете функцию переменной, тип переменной имеет тип функции, и вы можете вызывать эту переменную как вызов функции, как показано в примере ниже.
Пример:
// Перейти к программе для иллюстрации// использование анонимной функцииpackage mainimport "fmt"func main() {// Назначение анонима// функция переменнойvalue := func(){fmt.Println("Welcome! to Data science")}value()}- Выход:
Welcome! to Data science
- Вы также можете передавать аргументы в анонимной функции.
Пример:
// Перейти к программе для передачи аргументов// в анонимной функцииpackage mainimport "fmt"func main() {// Передача аргументов в анонимную функциюfunc(ele string){fmt.Println(ele)}("Data science")}- Выход:
Data science
- Вы также можете передать анонимную функцию в качестве аргумента в другую функцию.
Пример:
// Перейти в программу, чтобы передать аноним// функция в качестве аргумента в// другая функцияpackage mainimport "fmt"// Передача анонимной функции// в качестве аргументаfunc GFG(i func(p, q string)string){fmt.Println(i ("data", "science"))}func main() {value:= func(p, q string) string{returnp + q + "Data"}GFG(value)}
Выход:
Data science
- Вы также можете вернуть анонимную функцию из другой функции.
Пример:
// Перейти к программе для иллюстрации// использование анонимной функцииpackage mainimport "fmt"// Возвращаем анонимную функциюfunc GFG() func(i, j string) string{myf := func(i, j string)string{returni + j + "Data science"}returnmyf}func main() {value := GFG()fmt.Println(value("Welcome ", "to "))}- Выход:
Welcome to Data science