Анонимная функция в Go Language

Анонимная функция в 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 main
  •   
  • import "fmt"
  •   
  • func main() {
  •       
  •     // Назначение анонима
  •    // функция переменной
  •    value := func(){
  •       fmt.Println("Welcome! to Data science")
  •   }
  •   value()
  •     
  • }
  • Выход:
Welcome! to Data science
  • Вы также можете передавать аргументы в анонимной функции.

Пример:


  • // Перейти к программе для передачи аргументов
  • // в анонимной функции
  • package main
  •   
  • import "fmt"
  •   
  • func main() {
  •       
  •     // Передача аргументов в анонимную функцию
  •   func(ele string){
  •       fmt.Println(ele)
  •   }("Data science")
  •     
  • }
  • Выход:
Data science
  • Вы также можете передать анонимную функцию в качестве аргумента в другую функцию.

Пример:


  • // Перейти в программу, чтобы передать аноним
  • // функция в качестве аргумента в
  • // другая функция
  • package main
  •   
  • import "fmt"
  •   
  •   
  •   // Передача анонимной функции
  •  // в качестве аргумента
  •  func GFG(i func(p, q string)string){
  •      fmt.Println(i ("data", "science"))
  •        
  •  }
  •     
  • func main() {
  •     value:= func(p, q string) string{
  •         return p + q + "Data"
  •     }
  •     GFG(value)
  • }

Выход:

Data science
  • Вы также можете вернуть анонимную функцию из другой функции.

Пример:


  • // Перейти к программе для иллюстрации
  • // использование анонимной функции
  • package main
  •   
  • import "fmt"
  •   
  •  // Возвращаем анонимную функцию
  •  func GFG() func(i, j string) string{
  •      myf := func(i, j string)string{
  •           return i + j + "Data science"
  •      }
  •     return myf
  •  }
  •     
  • func main() {
  •     value := GFG()
  •     fmt.Println(value("Welcome ", "to "))
  • }
  • Выход:
Welcome to Data science


Report Page