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 非常相似,如果函式返回值,則可以使用return語句以及表示式。以下是將兩個整數相加並返回其和的函式:

語法

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

不返回任何內容的函式可以返回一個Unit,它等效於 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 程式設計師應該瞭解這些概念。

廣告