В Go передача функций в качестве аргументов в другие функции осуществляется с использованием типа функции. Вот пример того, как это можно сделать:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
package main import "fmt" // Функция, которая принимает другую функцию в качестве аргумента func processFunc(x int, f func(int) int) int { return f(x) } // Пример функции, которая будет передана в качестве аргумента func square(x int) int { return x * x } func main() { // Вызываем processFunc, передавая square в качестве аргумента result := processFunc(5, square) fmt.Println(result) // Выведет: 25 } |
В этом примере функция processFunc
принимает два аргумента: x
(целое число) и функцию f
, которая принимает целое число и возвращает целое число. Затем она вызывает эту переданную функцию f
с аргументом x
и возвращает результат.
В функции main
мы передаем функцию square
в качестве аргумента функции processFunc
. Функция square
просто возвращает квадрат переданного ей числа. Результатом будет квадрат числа 5
, то есть 25
.
Это лишь один из способов передачи функций в Go. Вы также можете использовать анонимные функции или функциональные типы для более сложных случаев.