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
  •  闭包可以捕获闭包之外的自由变量的变化
  • 被闭包捕获的变量的改变,在闭包之外也可见

 

----

posted @ 2020-02-14 12:54  后山前堂客  阅读(115)  评论(0)    收藏  举报