先作实验,代码以下:函数
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函数了。变量