Scala函數

函數是一組執行的語句。您可以將代碼按功能分成一個個單獨的函數。 如何在不同函數之間劃分你的代碼取決於你,但從邏輯上講,通常每個函數執行一個特定的任務。

Scala具有兩種函數,術語 - 方法和函數是可以互換的。 Scala方法是具有名稱,簽名,可選地一些注釋和一些位元組碼的類的一部分,作為Scala中的函數是可以分配給變數的完整對象。 換句話說,定義為某個對象的成員的函數稱為方法。

函數定義可以出現在原始檔案的任何位置,Scala允許嵌套函數定義,也就是其他函數定義中的函數定義。有一點要注意的是,Scala函數的名稱可以包含符號,如:+++~&---\/:等的字元。

函數聲明

Scala函數聲明具有以下形式 -

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

如果不使用等號和方法體,則隱式聲明抽象(abstract)方法。

函數定義

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 Demo {
   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
   }
}

將上述程式保存在原始檔案:Demo.scala中,使用以下命令編譯和執行此程式。

$ scalac Demo.scala
$ scala Demo

Returned Value : 12

Scala函數是Scala編程的核心,因此Scala被認為是函數式編程語言。以下是與Scala函數相關的幾個重要概念,Scala程式員應該要理解。

序號 函數
1 按名稱調用函數
2 命名參數的函數
3 可變參數的函數
4 遞歸函數
5 默認參數值函數
6 高階函數
7 嵌套函數
8 匿名函數
9 部分應用函數
10 柯裏化函數

上一篇: Scala迴圈語句 下一篇: Scala閉包