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