Go语言学习之旅13——回调函数

使用回调函数可以帮助我们提高代码的灵活性,避免硬编码问题,下面我们就来看一下go语言当中,要如何实现回调吧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 声明一个函数类型的变量
type FuncMath func(int, int) int

/*
* 用来作为参数传给数学计算方法的函数,代表加法功能
*/
func add(a int, b int) int {
return a + b
}

/*
* 进行数学计算的方法,通过传入函数作为参数来决定其具体作用
*/
func doMath(a int, b int, funcMath FuncMath) int {
return funcMath(a, b)
}

/*
* 程序入口
*/
func main() {
result := doMath(1, 2, add)
fmt.Println(result)
}

由此可见,所谓回调,即是将一个函数作为变量类型传递给另一个函数作为参数,从而实现程序的多态性