Scala_闭包

1、概念:

以前函数的执行只依赖传入函数的参数值,与调用函数的上下文无关;

当函数的执行依赖于声明在函数外部的一个或者多个变量时,则称这个函数为闭包;

2、举例

object BiBao extends App {
  var flag=10
  val func=(a:Int)=>a+flag
  println(func(4)) //14
  flag=20
  println(func(4)) //24
}

flag称为函数外部的自由变量,它的值将在函数被调用时确定;

3、闭包可以捕获自由变量的变化,也可以改变自由变量的值;

object BiBao extends App {
  var flag=0
  val func=(a:Int)=>flag+=a
  func(4)
  println(flag) //4
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郝少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值