回调函数顾名思义就是将函数作为参数传递给函数。
package main
import "fmt"
type Callback func (int,int) int //这个写法和往函数参数括号内写func(int,int)int是一致的,只不过这种更清晰一点
//加法
func Add(a,b int) (res int) { return a + b }
//减法
func Sub(a,b int) (res int) { return a - b }
//加法
func Mul(a,b int) (res int) { return a * b }
//主体函数
func Calc(x,y int,back Callback) {
fmt.Println("result =",back(x,y))
}
func main() {
Calc(2,2,Add) //4
Calc(2,2,Sub) //0
Calc(2,2,Mul) //4
}
其实,可以这样理解:Calc 函数的参数back,只不过是替代或是拷贝了一份所定义的函数。