Go | 回调函数使用

Go | 回调函数使用

例子

package callback

type CallBack func(int, int) int

func CallBackDemo(i, j int, call CallBack) int {
	result := call(i, j)
	return result
}

func Add(i, j int) int {
	return i + j
}

package callback

import "testing"

func TestCallBackDemo(t *testing.T) {
	res := CallBackDemo(1, 3, Add)
	t.Log(res)
}

在上述例子中,函数CallBackDemo接收3个参数,前两个参数是int类型,第三个参数为函数类型,而返回值,为int,这个int的结果,其实是call(x,y)的运行结果,但是call(x,y)是在其它地方实现的,是被函数Add(x,y)实现的。这就是回调

逻辑如下:首先程序运行,要打印CallBackDemo(x,y,Add)的结果,函数CallBackDemo接收了三个参数,第三个参数传入的是函数Add,返回的是call(x,y),其实返回的就是Add(x,y)。而Add(x,y),被另一个地方定义好了,返回的是x+y的值。所以最终,函数main的结果是打印出了x+y,也就是3

posted @ 2023-05-25 23:46  大西瓜Paul  阅读(60)  评论(0编辑  收藏  举报
/*增加返回顶部按钮*/ 返回顶部 /*给标题增加蓝色背景长条*/