在Scala中按名称调用函数
函数按名称调用
默认情况下,以编程语言传递参数的方法是“按值调用”。在这种情况下,参数被传递给一个函数,该函数使它们的副本对它们进行操作。同样在Scala中,按名称调用是默认的参数传递方法。
当程序需要将表达式或代码块作为参数传递给函数时,在Scala中使用按名称调用。在程序中按名称调用传递的代码块只有在被函数调用后才能执行。
语法:
def functionName(parameter => Datatype){
//函数体...包含按名称调用代码块
}说明:
此语法通过名称函数call初始化调用。这里传递的函数参数是一个函数,数据类型是所调用函数的返回类型。函数主体通过名称调用执行对要求值以提供值的函数的调用。通过使用程序中指定的参数名称来启动该调用。
示例
object Demo {
def multiply(n : Int) = {
(14*5);
}
def multiplier( t: => Long ) = {
println("Code to multiply the value by 5")
println("14 * 5 = " + t)
}
def main(args: Array[String]) {
println("Code to show call by name")
multiplier(multiply(14))
}
}输出结果
Code to show call by name Code to multiply the value by 5 14 * 5 = 70
代码说明:
上面的代码是按名称显示call的使用。该代码将打印乘以5的数字。代码中的数字为14。在从主调用进行函数调用时,该函数将传递给按名称调用函数。在乘法器函数中,它需要执行乘法方法的代码后,将启动in并在其中对值进行评估,以将其返回到打印该值(即70)的调用函数。