在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)的调用函数。