scala传名函数

先作实验,代码以下:函数

object TestFun {
  def main (args:Array[String]){
    delayed(time())
  }
  def time() = {
      println("获取时间,单位为纳秒")
      System.nanoTime
   }
   def delayed( t: => Long ) = {
      println("在 delayed 方法内")
      println("参数: " + t)
      t
   }
 }

实验结果以下:code

在 delayed 方法内
获取时间,单位为纳秒
参数: 22296025792244
获取时间,单位为纳秒

上例中delay方法的参数变量t上使用了=>符号,以表示是传名调用(传名调用表示在调用前不计算表达式的值,直接带入函数体内,当要用的时候才开始处理),因此在delayed方法中,先打印提示信息,而后第二个println函数开始用到参数t,这样就开始处理time函数了。变量

相关文章
相关标签/搜索