Scala 函數

Scala中不返回任何東西函數被稱爲過程。如下是語法函數

object Hello{
   def printMe( ) : Unit = {
      println("Hello, Scala!")
   }
}

調用函數:

Scala提供了一些語法的變化來調用方法。如下是調用一個方法的標準方法:spa

functionName( list of parameters )

若是函數被對象的一個實例調用使用,那麼使用相似於Java點標記以下:scala

[instance.]functionName( list of parameters )

下面是一個例子用來定義,而後調用函數:對象

object Test {
   def main(args: Array[String]) {
        println( "Returned Value : " + addInt(5,7) );
   }
   def addInt( a:Int, b:Int ) : Int = {
      var sum:Int = 0
      sum = a + b

      return sum
   }
}

 

按名稱調用函數

一般狀況下,函數的參數是傳值參數;即,參數的值在它被傳遞給函數以前被肯定。可是,若是咱們須要編寫一個接收參數不但願立刻計算,直到調用函數內的表達式。對於這種狀況,Scala提供按名稱參數調用函數。it

按名稱調用機制傳遞一個代碼塊給被調用者而且每次被調用方傳接入參數,代碼塊被執行,值被計算。io

object Test {
   def main(args: Array[String]) {
        delayed(time());
   }

   def time() = {
      println("Getting time in nano seconds")
      System.nanoTime
   }
   def delayed( t: => Long ) = {
      println("In delayed method")
      println("Param: " + t)
      t
   }
}

在這裏,咱們聲明delayed方法,它經過=>符號變量的名稱和類型,須要一個按名稱調用參數。當上述代碼被編譯和執行時,它產生了如下結果:編譯

C:/>scalac Test.scala
C:/>scala Test
In delayed method
Getting time in nano seconds
Param: 81303808765843
Getting time in nano seconds

C:/>

這裏,delayed打印的消息聲明,該方法已被輸入。接下來,delayed打印一個與其消息的值。最後delayed方法返回 t。function

相關文章
相關標籤/搜索