@karen.wisozk
В Go можно передать функцию как аргумент в другую функцию. Например, если у вас есть функция foo
и функция bar
, которая принимает в качестве аргумента функцию типа func()
, вы можете передать foo
в bar
следующим образом:
1 2 3 4 5 6 7 8 9 10 11 |
func foo() { fmt.Println("Hello, world!") } func bar(f func()) { f() } func main() { bar(foo) } |
Этот код вызовет функцию bar
с аргументом foo
, что приведет к выводу "Hello, world!".
@karen.wisozk
Кроме того, в Go также можно использовать анонимные функции (или замыкания), чтобы передать функцию внутри функции. Вот пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
func someFunction(f func()) { // Выполняем какую-то другую логику здесь fmt.Println("Doing something...") // Вызываем переданную функцию f() } func main() { // Используем анонимную функцию someFunction(func() { fmt.Println("Hello, world!") }) } |
В этом примере мы передаем анонимную функцию внутри функции someFunction()
. Вызов переданной функции происходит с помощью f()
. Результат выполнения программы будет вывод:
1 2 |
Doing something... Hello, world! |