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

Posted 乱七八糟的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了002_解析go语言中的回调函数相关的知识,希望对你有一定的参考价值。

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

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

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语言中的回调函数的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL - 002_2OpenGL 常见专业名词解析

go-002-语言结构

013_go语言中的函数多返回值

#yyds干货盘点#愚公系列2022年08月 Go教学课程 002-Go语言环境安装

014_go语言中的变参函数

016_go语言中的递归