回调函数顾名思义就是将函数作为参数传递给函数。
package mainimport "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) //4Calc(2,2,Sub) //0Calc(2,2,Mul) //4}
其实,可以这样理解:Calc 函数的参数back,只不过是替代或是拷贝了一份所定义的函数。
