Язык программирования 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.
Используя анонимные функции, мы можем инкапсулировать поведение, создавать замыкания, захватывающие переменные из окружающей области, и передавать функции в качестве аргументов другим функциям.