Назад к вопросам
Avito
Junior — Middle
74
Каким образом можно передать функцию в качестве аргумента для вызова внутри другой функции?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Go функции являются значениями первого класса, поэтому их можно передавать в качестве аргументов другим функциям.
Пример передачи функции в другую функцию:
package main
import "fmt"
// Функция, принимающая другую функцию как аргумент
func applyOperation(a, b int, op func(int, int) int) int {
return op(a, b)
}
func main() {
sum := func(x, y int) int {
return x + y
}
result := applyOperation(3, 4, sum)
fmt.Println(result) // Выведет 7
}
Здесь applyOperation принимает два числа и функцию op, которая определяет операцию над этими числами. В main мы передаем анонимную функцию сложения.
Таким образом, для передачи функции в Go достаточно указать тип аргумента как func(...) ... и передать нужную функцию при вызове.