среда, 13 мая 2020 г.

Типы функций и значения функций в Golang

Типы функций и значения функций могут использоваться и передаваться, как и другие значения:

type Operator func(x float64) float64

// Map применяет op к каждому элементу a.
func Map(op Operator, a []float64) []float64 {
    res := make([]float64, len(a))
    for i, x := range a {
        res[i] = op(x)
    }
    return res
}

func main() {
    op := math.Abs
    a := []float64{1, -2}
    b := Map(op, a)
    fmt.Println(b) // [1 2]

    c := Map(func(x float64) float64 { return 10 * x }, b)
    fmt.Println(c) // [10, 20]
}

Второй вызов Map использует литерал функции (или лямбду).

Тип функции описывает набор всех функций с одинаковыми параметрами и типами результатов.

  • Значение неинициализированной переменной типа функции равно nil.
  • Имена параметров являются необязательными.

Следующие два типа функций идентичны.

func(x, y int) int
func(int, int) int


Читайте также:


Комментариев нет:

Отправить комментарий