首页 > 编程语言 > 详细

002_解析go语言中的回调函数

时间:2018-04-01 00:45:56      阅读:268      评论:0      收藏:0      [点我收藏+]

回调函数是一种特殊的函数写法,在很多场景中发挥广泛的作用。但是对于初学者来说,回调函数是比较头疼的一个东西,不太好懂,笔者研究了一番,以网上的一个例子详细说明一下

首先看一个代码示例(来源于网上)

package main

import "fmt"

type Callback func(x, y int) int

func main() {
    x, y := 1, 2
    fmt.Println(test(x, y, add))
}

//实现回调
func test(x, y int, callback Callback) int {
    return callback(x, y)
}

func add(x, y int) int {
    return x + y
}

此代码运行结果如下

3

  • 在上述例子中,函数test接收3个参数,前两个参数是int类型,第三个参数为函数类型,而返回值,为int,这个int的结果,其实是callback(x,y)的运行结果,但是callback(x,y)是在其它地方实现的,是被函数add(x,y)实现的。这就是回调
  • 逻辑如下:首先程序运行,要打印test(x,y,add)的结果,函数test接收了三个参数,第三个参数传入的是函数add,返回的是callback(x,y),其实返回的就是add(x,y)。而add(x,y),被另一个地方定义好了,返回的是x+y的值。所以最终,函数main的结果是打印出了x+y,也就是3

总结一下,Go是支持函数回调的,我们可以把函数A的名称作为参数传递给另外一个函数B,然后在别的地方实现这个函数A,这样就实现了函数回调

002_解析go语言中的回调函数

原文:https://www.cnblogs.com/Joestar/p/8684813.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!