
- Scala 教程
- Scala - 首頁
- Scala - 概述
- Scala - 特性
- Scala - 環境設定
- Scala - 構建工具 (SBT)
- Scala - 基本語法
- 資料型別和變數
- Scala - 資料型別
- Scala - 變數
- Scala - 字串
- Scala - 陣列
- Scala 運算子
- Scala - 運算子
- Scala - 算術運算子
- Scala - 關係運算符
- Scala - 邏輯運算子
- Scala - 位運算子
- Scala - 賦值運算子
- Scala 條件語句
- Scala - IF ELSE
- Scala 迴圈語句
- Scala - 迴圈語句
- Scala - while 迴圈
- Scala - do-while 迴圈
- Scala - for 迴圈
- Scala - break 語句
- Scala 類和物件
- Scala - 類和物件
- Scala - 訪問修飾符
- Scala 方法和函式
- Scala - 函式
- Scala - 函式按名稱呼叫
- Scala - 帶命名引數的函式
- Scala - 帶可變引數的函式
- Scala - 遞迴函式
- Scala - 預設引數值
- Scala - 高階函式
- Scala - 巢狀函式
- Scala - 匿名函式
- 部分應用函式
- Scala - 柯里化函式
- Scala 集合
- Scala - 集合
- Scala - 列表
- Scala - 集合
- Scala - 對映
- Scala - 元組
- Scala - 迭代器
- Scala - 選項
- Scala 模式匹配
- Scala - 模式匹配
- Scala - 異常處理
- Scala - 提取器
- Scala - 正則表示式
- Scala 檔案 I/O
- Scala - 檔案 I/O
- Scala 高階概念
- Scala - 閉包
- Scala - 特質
- Scala 有用資源
- Scala - 快速指南
- Scala - 線上編譯器
- 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 非常相似,如果函式返回值,則可以使用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 程式設計師應該瞭解這些概念。