先作實驗,代碼以下:函數
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函數了。變量