Scala 中闭包的概念

闭包的实质就是代码与用到的非局部变量的混合,即:

闭包 = 代码 + 用到的非局部变量


例如,我们定义一个值函数 sum:

此时 Scala 解释器提示找不到 y 这个值,这是因为我们根本就没有定义 y 这个变量,所以 Scala 解释器不知道 y 究竟是什么内容。接下来我们定义一个变量 y :

现在已经不再报错了,直接调用值函数 sum:

此时 sum 函数的值是6,这是因为我们在值函数外面声明了一个全局变量,然后值函数中的 y 捕获到了这个全局变量,从而使 x + y 变成一个正常的函数定义,让函数的定义闭合起来,这就是闭包。如果改变 y 的值,闭包也可以捕获到这个变化的 y 的值,例如让 y = 15 之后再调用值函数 sum:


此时值函数 sum 的返回值变成了 20

以上就是 Scala 中基础的闭包概念

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值