老师看完闭包这一节,我还是有点疑问
来源:5-5 闭包(函数式编程的福音)

Da丶
2019-02-18
因为之前一直用Java,不太了解闭包的概念,学完课程之后,我明白了闭包的概念是:
在一个函数A中返回了另一个函数B,只有函数B才可以访问函数A中的内容,这个现象的概念叫做闭包
我有两个疑问:
第一个是:
@kotlin.internal.InlineOnly
public inline fun <T> T.apply(block: T.() -> Unit): T {
contract {
callsInPlace(block, InvocationKind.EXACTLY_ONCE)
}
block()
return this
}
想apply这种方法当函数(表达式)以参数的形式传递进去,这属不属于闭包?
第二个疑问是:
看了您的例子,我还是不太明白闭包到底可以用在哪里?老师能不能给一些 常用的地方,或者深刻的例子.能够更好的加深理解.
写回答
1回答
-
bennyhuo
2019-02-18
闭包简单说就是函数内部可以有状态,这个得前提就是函数本身是对象。javascript 当中会经常用到,java背景的程序一般都会按照JAVA的思路写,不常见到了。比如柯里化之类的特性就需要基于这个特性。
apply这个严格意义上不涉及闭包,因为没有涉及状态,也没有在函数内部定义函数。
052019-02-18
相似问题
我觉得这节课程完全算是中阶了吧
回答 1
关于await问题
回答 1