先做实验,代码如下:
object TestFun {
def main (args:Array[String]){
delayed(time())
}
def time() = {
println("获取时间,单位为纳秒")
System.nanoTime
}
def delayed( t: => Long ) = {
println("在 delayed 方法内")
println("参数: " + t)
t
}
}
实验结果如下:
在 delayed 方法内
获取时间,单位为纳秒
参数: 22296025792244
获取时间,单位为纳秒
上例中delay方法的参数变量t上使用了=>符号,以表示是传名调用(传名调用表示在调用前不计算表达式的值,直接带入函数体内,当要用的时候才开始处理),所以在delayed方法中,先打印提示信息,然后第二个println函数开始用到参数t,这样就开始处理time函数了。