Функции в Go тоже являются значениями. Их можно передавать так же как и остальные значения.
Функции могут быть использованы как аргументы других функций и как возвращаемые значения.
package main
import (
"fmt"
"math"
)
func compute(fn func(float64, float64) float64) float64 {
return fn(3, 4)
}
func main() {
hypot := func(x, y float64) float64 {
return math.Sqrt(x*x + y*y)
}
fmt.Println(hypot(5, 12))
fmt.Println(compute(hypot))
fmt.Println(compute(math.Pow))
}
Вывод:
13
5
81
Читайте также:
- Основы языка Go: range, итерация по срезам и картам
- Основы языка Go: карты (словари)
- Основы языка Go: изменения карт
Комментариев нет:
Отправить комментарий