@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! |