+ 首页>>技能>>快速科普>>内容

技能[测试人也Code]回调函数500+次围观

DiggerPlus启用全新版块内容[测试人也Code],归属于科普栏目,我们来想一下这样的场景:在阅读某篇技术文章的时候你看到了这些概念,如异步,同步,阻塞,回调,递归,I/O等……亦或是曾经听到开发正在谈论这些内容,然后抱着求学心态,你去查阅了百度百科,但发现还是不能够很好地理解,我们打造这个栏目,想通过这样一种通俗的方式去跟大家一起学习这些概念,首先给大家信心,看到这些概念的时候不要惧怕,当你真正理解后,他们也就是这么回事儿。我们也欢迎对这个栏目有展望的测试人加入我们的编辑队伍。
本栏目不适合熟悉甚至精通coding的测试人阅读(因为内容属于纯科普),栏目中用语十分通俗和神棍,但我们会避免误导,有错误的地方请指示。
我们本次谈论的名词是:回调函数

函数的概念

回调函数一般在code中的英文名叫”callback”,如果你不小心看到了这个单词,那么他们很有可能就是回调函数。
我们抛弃指针,参数等一些名词,单独解释这个回调函数是什么意思,说到回调函数,那就先来说说函数。
函数的概念跟当年数学中的函数概念有神似之处,例如数学中的函数可能长这个样:

f(x)=x+y+z

f(x)就是函数名,做的事情是x+y+z,那放到代码里边儿,这个表达式就可能长这个样:

def f(x,y,z):
    return x+y+z

这里的函数名是f,那么x,y,z又叫什么呢?函数要拿他们去做事情,他们就是”干活的”(参数)
那return又是什么呢?意思是让x,y,z三个”干活的”去做一件事:x+y+z,但是要求做完事情给出答复,答复要给谁呢?当然要给这里的函数f了。
这个被称之为:函数返回值,那必须有返回值吗?那倒也不一定,这要看函数这个老板让x,y,z做什么事情了:
比如老板让x,y,z这三个人滚蛋……⊙﹏⊙
基本上对于理解回调函数,你现在只要知道这些就够了。

回调函数

我们还是以老板为例,我们假设说上面的f老板上面还有一个大BOSS,大BOSS拥有众多权利(接口),但是他不确定什么时候,什么情况下要用哪个权利。
由于他是大老板,他想召唤谁就召唤谁,于是有一次开会的时候,他召唤了f(f入职的时候报了自己的手机号码(函数地址)),并告诉f,x,y,z这三个人你随便用。

def f(x):
     print x

def scan(array, func):
     for i in array:
          func(i)

array = [1, 2, 3]
scan(array, f)

于是就有了上面的代码,这个时候,f就是一个回调函数。
OK,是不是有点开始理解了?
尝试着自己写一段回调函数吧~
下期[测试人也Code]讲什么呢?拭目以待吧。

+ 猜你喜欢...

===== 关于 DiggerPlus =====
DiggerPlus是国内新锐测试人垂直内容博客,专注于挖掘测试工具,普及测试技术,专注于测试人能力提升,博客上线后就受到广大测试人的热烈追捧;此外,DiggerPlus深度整合评测资源,揭秘科技数据和真相,让读者更懂科技,更好地把玩科技。 我们始终保持"独立,客观,严谨,优秀"的优良作风,努力为读者带来源源不断的优质内容。想访问更多酷毙的测试人网站?赶紧来DiggerPlus测试人网址导航看看吧!

===== DiggerPlus Team =====
DiggerPlus Team是DiggerPlus官方发起的团队,这是一群热爱科技,热爱测试,喜欢深度挖掘的热血测试人,他们是评测师,测试专家。 我们欢迎优秀的测试人加入DiggerPlus Team。 加入DiggerPlus,可以成为我们的认证Dper,认证Dper拥有DiggerPlus独一无二的专栏并得到个人展示。

===== DiggerPlus 官方读者群 =====
DiggerPlus官方读者群(一)

+ 关于本文作者

Python/C/C++/Javascript程序员,持续学习者,目前专注于前端开发。

的专栏 | 专栏作者 | 访问小A的主页

+ 已有13个评论

开源中国精彩推送

基于开源中国OpenAPI开发
  • Copyright © 2014 DiggerPlus. 99 queries in 1.799 seconds.
    使用合作网站账号快速登录,更多精彩等着您: 开源中国