002_解析go语言中的回调函数
2024-09-07 09:02:12
回调函数是一种特殊的函数写法,在很多场景中发挥广泛的作用。但是对于初学者来说,回调函数是比较头疼的一个东西,不太好懂,笔者研究了一番,以网上的一个例子详细说明一下
首先看一个代码示例(来源于网上)
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,这样就实现了函数回调
最新文章
- 红黑树/B+树/AVL树
- DataTableToJson
- MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)
- iptraf:TCP/UDP网络监控工具
- 利用Web服务器网络打洞
- android学习笔记13——ExpandableListView
- Dubbo源码-Dubbo是如何随心所欲自定义XML标签的
- 【redis】-- springboot集成redis及使用
- git常用方法
- Koa源码分析(一) -- generator
- 下载中间件--随机IP代理以及随机User_Agent
- ECharts图表的小工具
- PLMN概念和应用设置
- Linux中设备号及设备文件【转】
- NET 下载共享文件
- python学习手册中的一些易忘的点(第4部分)
- HDU 1269 移动城堡 联通分量 Tarjan
- 前端福利之个性化设置table的td宽度(总结)
- Android AES加密工具类实现(基础回顾)
- poj 2828 buy Tickets 用线段树模拟带插入的队列