Scala 函数按名称调用

Scala 函数按名称调用

函数按名称调用

通常,函数的参数是按值参数;也就是说,参数的值是在传递给函数之前确定的。但是,如果我们需要编写一个函数,该函数接受在函数中被调用之前不希望对其求值的表达式作为参数,该怎么办?在这种情况下,Scala提供了按名字调用的参数。 按名称调用机制将代码块传递给该调用,并且每次调用访问该参数时,都会执行该代码块并计算值。在这里,delay打印一条消息,表明已输入该方法。接下来,延迟打印一条带有其值的消息。最后,延迟返回“t”。

以下程序显示了如何实现按名称调用。

object Demo {
   def main(args: Array[String]):Unit = {
        delayed(time());
   }

   def time() = {
      println("Getting time in nano seconds")
      System.nanoTime
   }
   def delayed( t: => Long ) = {
      println("In delayed method")
      println("Param: " + t)
   }
}

输出:

In delayed method
Getting time in nano seconds
Param: 41638109552165124

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程