Scala闭包

闭包是一个函数,返回值依赖于函数外部的一个或多个变量。

可以理解为:可以访问一个函数里面局部变量的另一个函数
closure

val results = (i:Int) => i*y
在results函数中有两个变量,一个是i,匿名函数的参数,另一个是自由变量y。自由变量y在运行中会不断发生变化,它处于一种“开放状态”;当函数执行时自由变量y的值已经被确定,此时可以认为在运行时它暂时处于“封闭状态”,这种存在开放到封闭过程的函数被称为闭包。

高阶函数也可以理解为是一种闭包。 高阶函数可以理解是函数中调用函数。