Scala学习笔记-09-函数式编程-闭包

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

scala> var sum = 0
sum: Int = 0

scala> val accumulator = (x:Int)=> sum += x //包含外部变量sum的闭包
accumulator: Int => Unit = <function1>

scala> accumulator(5)

scala> sum
res26: Int = 5
  •  闭包可以捕获闭包之外的自由变量的变化
  • 被闭包捕获的变量的改变,在闭包之外也可见

----

猜你喜欢

转载自www.cnblogs.com/wooluwalker/p/12307018.html