scala 闭包的概念

Posted 鱼儿慢慢游~~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scala 闭包的概念相关的知识,希望对你有一定的参考价值。

闭包本质上是一个函数和其引用的变量的统一定义,它的返回值依赖于这个函数外部的一个或者多个变量。

var test = (i:Int) => i+sum

这里 i是一个形参, 随着函数的调用传入不同的值 。而more是一个自由变量。

依照函数的字面量(个人理解为函数名)在运行时创建函数对象被称作闭包,通过捕获自由变量的绑定,从而对函数字面量执行的关闭动作。

当自由变量的值发生改变是, 闭包可以捕获这一变化, 从而做出相应的改变。

技术分享

如上图, 当sum有1变为100时,对应的闭包检测到这一变化,新的函数调用返回新的值。

 “An object is data with functions. A closure is a function with data.” — John D. Cook  贴上,慢慢理解

以上是关于scala 闭包的概念的主要内容,如果未能解决你的问题,请参考以下文章

scala 闭包的概念

Scala编程之闭包(closure)

Scala 闭包

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

Scala 闭包和 Java 8 闭包之间的兼容性

Scala 闭包