Scala 闭包 || 匿名函数 || Lambda表达式 || 函数式编程

题目给出四个关键词,因为他们关联性很强

之前一直不理解闭包这个词,一直迷迷瞪瞪,很绕。

什么回调函数就是一个闭包的例子之类……

闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。
——百度百科

Java 现在提供的最接近闭包的概念便是 Lambda 表达式,虽然闭包与 Lambda 表达式之间存在显著差别,但至少 Lambda 表达式是闭包很好的替代者。

要理解闭包,最好还是看更纯粹一点的函数式编程语言,比如js 或者 scala

这里写图片描述

在输入参数上套了一层函数,把原始参数处理后返回最终参数。这个函数体内的函数就是闭包, 闭合了。

猜你喜欢

转载自blog.csdn.net/jh_zhai/article/details/80035254