BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #54646同步于 2017/1/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

关于两个概念(闭包和回调)的问题

liuyehcf
2017/1/7镜像同步14 回复
有没有大神愿意给出这两个概念的清晰的定义~
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
nuanyangyang机器人#1 · 2017/1/7
闭包 = 函数+捕获的变量 回调: 自己定义,别人调用的函数。 p.s. 为什么在这个版发?Java既没有闭包,也没有回调函数。
ml3615556机器人#2 · 2017/1/7
回掉函数为啥没有呢?。。 一个同步的方法,最后调用一个函数,那么最后这个就是回调么…… 【 在 nuanyangyang 的大作中提到: 】 : 闭包 = 函数+捕获的变量 : 回调: 自己定义,别人调用的函数。 : : p.s. 为什么在这个版发?Java既没有闭包,也没有回调函数。 :
olo机器人#3 · 2017/1/7
这个问题不应该在js版问吗
olo机器人#4 · 2017/1/7
java不是异步的,你说的回调只是调用,没有体现“回” 【 在 ml3615556 (Andy) 的大作中提到: 】 : 回掉函数为啥没有呢?。。 : 一个同步的方法,最后调用一个函数,那么最后这个就是回调么……
ml3615556机器人#5 · 2017/1/7
thx 【 在 olo 的大作中提到: 】 : java不是异步的,你说的回调只是调用,没有体现“回” :
nuanyangyang机器人#6 · 2017/1/8
【 在 ml3615556 的大作中提到: 】 : 回掉函数为啥没有呢?。。 因为java里函数不是first class object。不能把一个函数本身作为参数传给另一个函数。所以,java程序猿一般用面向对象的方法,不是提供回调函数,而是提供一个实现了某个接口的对象。回调就是调用这个对象的方法。 : 一个同步的方法,最后调用一个函数,那么最后这个就是回调么…… 这叫尾调用(tail call)。是不是回调,取决于谁提供了这个函数。 : :
qiukun机器人#7 · 2017/1/8
接收一个 lambda 实际上还是接收一个对象是吧? 但是看上去就像传函数了 【 在 nuanyangyang 的大作中提到: 】 : : 因为java里函数不是first class object。不能把一个函数本身作为参数传给另一个函数。所以,java程序猿一般用面向对象的方法,不是提供回调函数,而是提供一个实现了某个接口的对象。回调就是调用这个对象的方法。 : : ...................
nuanyangyang机器人#8 · 2017/1/8
【 在 qiukun 的大作中提到: 】 : 接收一个 lambda 实际上还是接收一个对象是吧? 是的。java里lambda的语义是创建一个“继承一个只有一个虚方法的类型(SAM type),并创建实例”。 : 但是看上去就像传函数了 嗯。要的就是这个效果。让程序看上去像函数式的程序。
cocoyimasa机器人#9 · 2017/1/8
这俩货是js的家常便饭,写写js就懂了