Go function as parameter

A Go function can be passed to other functions as a parameter. Such a function is called a higher-order function.

Go function as a parameter

In the example, the apply function takes the inc() and dec() functions as parameters.


package main

import "fmt"

func inc(x int) int {
    x++
    return x
}

func dec(x int) int {
    x--
    return x
}

func apply(x int, f func(int) int) int {

    r := f(x)
    return r
}

func main() {
    r1 := apply(5, inc)
    r2 := apply(4, dec)
    fmt.Println(r1)
    fmt.Println(r2)
}

Output:

6
3

Comments