Go语言HTTP编程-回调函数

未匹配的标注

Go语言HTTP编程

Go语言标准库内建提供了net/http包,涵盖了HTTP客户端和服务端的具体实现。使用net/http包,我们可以很方便地编写HTTP客户端或服务端的程序。

回调函数

实现本质:函数指针。
函数指针定义语法:关键字type 函数指针名 关键字func(形参列表) 返回值类型
例如:type FUNCP func(x int, y bool)int

回调函数:

用户自定义一个函数,不直接在程序中显式调用,而当某一特定条件满足时,再进行调用,或由系统自动调用。

// 定义一个函数指针【类型】
type funcP func(x int, y bool) int

// 封装主调函数,函数指针作为参数。其他两个参数都是函数指针调用的函数要用的参数。
func useCallback(x int, y bool, p funcP) int {
    return p(x, y)
}
// 回调函数1
func addOne(x int, y bool) int {
    if y == true {
            x++
    }
    return x
}
// 回调函数2
func subTen(x int, y bool) int {
    if y == true {
        x -= 10
    }
    return x
}
func main()  {
    var p funcP
    fmt.Printf("type:%T, sizeof(P)=%d\n", p, unsafe.Sizeof(p))

    p = addOne

    fmt.Println(useCallback(5, true, p))
    fmt.Println(useCallback(26, true, subTen))
}

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~