English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Язык Go предоставляет особый тип функции, называемый анонимной функцией. Анонимная функция — это функция, не содержащая никакого имени. Этот тип функции полезен при создании вlined функции. В Go языке анонимные функции могут образовывать closures. Анонимные функции также называютсяФункциональное выражение.
Грамматика:
func(parameter_list) return_type { //Код //Если указан return_type, то используйте инструкцию return //Если не указан return_type, то не //Использование инструкции return return }()
package main import "fmt" func main() { //Анонимная функция func() fmt.Println("Добро пожаловать! в oldtoolbag.com") }() }
Вывод:
Добро пожаловать! в oldtoolbag.com
Важно:
В Go языке вы можете назначать анонимные функции переменным. Назначая функцию переменной, тип переменной становится типом функции, и вы можете вызывать переменную, как функцию, как показано в следующем примере.
package main import "fmt" func main() { //Анонимная функция назначается переменной value := func(){ fmt.Println("Добро пожаловать! в oldtoolbag.com") } value() }
Вывод:
Добро пожаловать! в oldtoolbag.com
Вы также можете передавать параметры в анонимные функции.
package main import "fmt" func main() { //Передача параметров в анонимную функцию func(ele string){ fmt.Println(ele) }("w3codebox") }
Вывод:
w3codebox
Вы также можете передавать анонимные функции в качестве аргументов другим функциям.
package main import "fmt" //Передача анонимной функции в качестве аргумента 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) }
Вывод:
w3codebox
Вы также можете возвращать анонимные функции из другой функции.
package main import "fmt" //Возврат анонимной функции 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("Добро пожаловать в ", "to ")) }
Вывод:
Добро пожаловать в w3codebox