Scala中的闭包
Scala中的闭包
Scala中的闭包是一种特殊的功能。闭包使用函数中未声明的一个或多个值来提供最终输出。这意味着它们的返回值取决于在函数外部声明的值(即,既不在参数中也不在函数体中声明)。
那么,值从何而来?
闭包使用的其他值可以在函数之外的任何地方定义,但在函数范围内。这意味着在其他函数中定义的值不能用于闭包,但可以使用在同一类中定义的任何变量或全局值。
具有以下功能:
val increment = (i:Int) => i + 2
在这里,该函数是一个匿名函数,但使用的参数不是其参数,但不是闭包,因为它不是变量。
因此,将其定义为闭包,
val increment = (i:Int) => i + adder
这是一个闭包,因为它使用了一个变量,该变量需要在函数外部进行初始化以计算返回值。我们可以在代码中函数之前的任何位置初始化此加法器变量。
例如,
var adder = 2;
// 代码块
val increment = (i:Int) => i + adder示例代码:
object Demo {
var adder = 2
def main(args: Array[String]) {
println( "This code will increment the value by using closure");
println("increment(10) = " + increment(10));
}
val increment = (i:Int) => i + adder
}输出结果
This code will increment the value by using closure increment(10) = 12
示例说明:
在上面的代码中,我们定义了adder变量,它是closure的外部变量。然后在main方法中,我们使用参数10调用闭包函数。增量闭包采用该值,并将加法器(2)的值加到加法器上,然后返回最终值(12)。
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短