Как передать на golang функцию в функцию?

Пользователь

от domenick , в категории: Общие вопросы , 15 дней назад

Как передать на golang функцию в функцию?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

1 ответ

Пользователь

от laurine_beahan , 9 дней назад

@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 возводит переданное число в квадрат.