天天看點

Scala 方法與函數

Scala 有方法與函數,二者在語義上的差別很小。Scala 方法是類的一部分,而函數是一個對象可以指派給一個變量。換句話來說在類中定義的函數即是方法。

Scala 中的方法跟 Java 的類似,方法是組成類的一部分。

Scala 中的函數則是一個完整的對象,Scala 中的函數其實就是繼承了 Trait 的類的對象。

Scala 中使用 val 語句可以定義函數,def 語句定義方法。

注意:有些翻譯上函數(function)與方法(method)是沒有差別的。

Scala 方法聲明格式如下:

如果你不寫等于号和方法主體,那麼方法會被隐式聲明為抽象(abstract),包含它的類型于是也是一個抽象類型。

方法定義由一個 def 關鍵字開始,緊接着是可選的參數清單,一個冒号 : 和方法的傳回類型,一個等于号 = ,最後是方法的主體。

Scala 方法定義格式如下:

以上代碼中 <b>return type</b> 可以是任意合法的 Scala 資料類型。參數清單中的參數可以使用逗号分隔。

以下方法的功能是将兩個傳入的參數相加并求和:

object add{

   def addInt( a:Int, b:Int ) : Int = {

      var sum:Int = 0

      sum = a + b

      return sum

   }

}

如果方法沒有傳回值,可以傳回為 <b>Unit</b>,這個類似于 Java 的 <b>void</b>, 執行個體如下:

object Hello{

   def printMe( ) : Unit = {

      println("Hello, Scala!")

Scala 提供了多種不同的方法調用方式:

以下是調用方法的标準格式:

如果方法使用了執行個體的對象來調用,我們可以使用類似java的格式 (使用 <b>.</b> 号):

以上執行個體示範了定義與調用方法的執行個體:

object Test {

   def main(args: Array[String]) {

        println( "Returned Value : " + addInt(5,7) );

執行以上代碼,輸出結果為:

Scala 也是一種函數式語言,是以函數是 Scala 語言的核心。以下一些函數概念有助于我們更好的了解 Scala 程式設計:

函數概念解析接案例

函數傳名調用(Call-by-Name)

指定函數參數名

函數 - 可變參數

遞歸函數

預設參數值

高階函數

内嵌函數

匿名函數

偏應用函數

函數柯裡化(Function Currying)

上一篇: Scala 閉包
下一篇: Go 語言函數