helloを表示するgreet関数を変数fに代入して実行してみる。

package main

import "fmt"

func main() {
	var f func()
	f = greet
	f()
}

func greet() {
	fmt.Println("hello")
}

ここで、f = greetは、関数greetを値として変数に代入している。この場合、f()で、変数fの値が関数型だったら実行される。

fmt.Printlnすると、helloが表示される。

次に関数型のfを実行するdofunc関数を作成して、上記と同様にhelloを表示してみる。

package main

import "fmt"

func main() {
	var f func()
	f = greet
	dofunc(f)
}

func greet() {
	fmt.Println("hello")
}
func dofunc(f func()) {
	f()
}

func dofunc(f func()) { f()}で、関数型の変数fを実行するdofunc関数を作成している。mainの中でdoFunc(f)で実行する。