Понимание анонимных функций в Go: руководство по использованию лямбда-функций

Язык программирования Go поддерживает анонимные функции, также известные как лямбда-функции или функциональные литералы. Анонимные функции — это функции, которые определены без имени и могут использоваться в качестве значений или аргументов других функций. Они обычно используются в Go для различных целей, таких как создание замыканий или реализация параллельных операций.

Вот пример анонимной функции в Go:

package main
import "fmt"
func main() {
    // Anonymous function assigned to a variable
    add := func(a, b int) int {
        return a + b
    }
    result := add(3, 5)
    fmt.Println(result) // Output: 8
    // Anonymous function as an argument to another function
    multiply := func(a, b int) int {
        return a * b
    }
    calculate := func(operation func(int, int) int) {
        result := operation(4, 2)
        fmt.Println(result)
    }
    calculate(multiply) // Output: 8
}

В приведенном выше примере мы определяем две анонимные функции. Первый, add, принимает в качестве параметров два целых числа и возвращает их сумму. Он присваивается переменной и позже вызывается с помощью add(3, 5). Вторая анонимная функция, multiply, умножает два целых числа. Затем он передается в качестве аргумента функции calculate, которая выполняет предоставленную функцию с аргументами 4и 2.

Используя анонимные функции, мы можем инкапсулировать поведение, создавать замыкания, захватывающие переменные из окружающей области, и передавать функции в качестве аргументов другим функциям.