回调函数顾名思义就是将函数作为参数传递给函数。

    1. package main
    2. import "fmt"
    3. type Callback func (int,int) int //这个写法和往函数参数括号内写func(int,int)int是一致的,只不过这种更清晰一点
    4. //加法
    5. func Add(a,b int) (res int) { return a + b }
    6. //减法
    7. func Sub(a,b int) (res int) { return a - b }
    8. //加法
    9. func Mul(a,b int) (res int) { return a * b }
    10. //主体函数
    11. func Calc(x,y int,back Callback) {
    12. fmt.Println("result =",back(x,y))
    13. }
    14. func main() {
    15. Calc(2,2,Add) //4
    16. Calc(2,2,Sub) //0
    17. Calc(2,2,Mul) //4
    18. }

    其实,可以这样理解:Calc 函数的参数back,只不过是替代或是拷贝了一份所定义的函数。