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函數了。變量

相關文章
相關標籤/搜索