位置:首頁 > 高級語言 > Scala教學 > Scala函數

Scala函數

函數是一組一起執行任務的語句。可以將代碼放到獨立的功能。如何劃分你的代碼不同功能之間,但在邏輯上,劃分通常是讓每個函數執行特定的任務。

Scala有函數和方法,我們術語說的方法和函數互換用微小的差彆。Scala方法是其中有一個名字,簽名,任選一些注釋,有的字節碼,其中如在Scala中函數是可被分配給一個變量的完整對象類的一部分。換句話說,函數,其被定義為某些對象的一個成員,被稱為方法。

函數定義可以出現在在源文件的任何地方,Scala允許嵌套函數的定義,那就是其他函數定義的內部函數定義。需要注意的最重要的一點是,Scala的函數名稱可以類似+, ++, ~, &,-, -- , , /, : 等字符。

函數聲明:

Scala的函數聲明有如下形式:

def functionName ([list of parameters]) : [return type]

如果保留關閉等號和方法體的方法為隱式聲明,抽象的封閉類型是抽象本身。

函數定義:

Scala函數定義有如下形式:

def functionName ([list of parameters]) : [return type] = {
   function body
   return [expr]
}

在這裡,返回類型可以是任何有效的scala數據類型,參數列表將是用逗號和參數,返回值類型列表分離變量是可選的。非常類似於Java,一個返回語句可以在函數表達式可用情況下返回一個值。以下是這將增加兩個整數並返回的函數:

object add{
   def addInt( a:Int, b:Int ) : Int = {
      var sum:Int = 0
      sum = a + b

      return sum
   }
}

函數,它不返回任何東西,可以返回這相當於在Java中void,並表示該函數不返回任何單元。Scala中不返回任何東西函數被稱為過程。以下是語法

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

調用函數:

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

functionName( list of parameters )

如果函數被對象的一個實例調用使用,那麼使用類似於Java點標記如下:

[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
   }
}

讓我們編譯和運行上麵的程序,這將產生以下結果:

C:/>scalac Test.scala
C:/>scala Test
Returned Value : 12

C:/>

Scala函數是Scala編程的核心,這就是為什麼Scala被假定為一個函數式編程語言。以下是Scala程序員理解相關Scala函數的一些重要的概念。

函數按名稱調用 使用命名參數函數
函數使用可變參數 遞歸函數
默認參數值 高階函數
嵌套函數 匿名函數
部分應用函數 柯裡函數