English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang базовый курс

Golang управляющие операторы

Golang функции и методы

Golang структуры

Golang срезы и массивы

Golang строки(String)

Golang указатели

Golang интерфейсы

Golang параллельные вычисления

Golang исключение(Error)

Другие категории Golang

Анонимные функции в Go языке

Язык 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