如何尽可能简单的说明回调函数是什么?

“回调”是由另一个函数调用的任何函数,该函数将第一个函数作为参数。很多的时候,一个“回调”是一个时被调用函数事情发生。在程序员说话中,这个东西可以被称为“事件”。

想象一下这种情况:您期待在几天内获得一个包。包裹是给邻居的礼物。因此,一旦你得到包裹,你想要它带到邻居。你不在城里,所以你要为你的配偶留下指示。

您可以告诉他们获取包裹并将其带给邻居。如果你的配偶和计算机一样愚蠢,他们会坐在门口等待包裹直到它来了(没有做任何事情)然后一旦它来了,他们就会把它带到邻居家。但是有更好的方法。告诉你的配偶,一旦他们收到包裹,他们应该把它带到邻居家。然后,他们可以正常生活,直到他们收到包裹。

在我们的例子中,包的接收是“事件”,并且将它带到邻居是“回调”。您的配偶“运行”您的指示,仅包裹到达将包裹带过来。好多了!

这种想法在日常生活中是显而易见的,但计算机没有同样的常识。考虑一下程序员通常如何写入文件:

fileObject = open(file)
# now that we have WAITED for the file to open, we can write to it
fileObject.write("We are writing to the file.")
# now we can continue doing the other, totally unrelated things our program does

在这里,我们在写入之前等待文件打开。这会“阻止”执行流程,而我们的程序无法执行其可能需要执行的任何其他操作!如果我们能做到这一点怎么办:

# we pass writeToFile (A CALLBACK FUNCTION!) to the open function
fileObject = open(file, writeToFile)
# execution continues flowing -- we don't wait for the file to be opened
# ONCE the file is opened we write to it, but while we wait WE CAN DO OTHER THINGS!
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值