學習Scala 方法與函式

安全劍客發表於2020-11-06
導讀 scala 是一門多正規化(multi-paradigm)的程式語言,設計初衷是要整合物件導向程式設計和函數語言程式設計的各種特性。Scala 執行在 Java 虛擬機器上,併相容現有的 Java 程式。

學習Scala 方法與函式學習Scala 方法與函式
Scala 有方法與函式,二者在語義上的區別很小。Scala 方法是類的一部分,而函式是一個物件可以賦值給一個變數。換句話來說在類中定義的函式即是方法。Scala 中的方法跟 Java 的類似,方法是組成類的一部分。Scala 中的函式則是一個完整的物件,Scala 中的函式其實就是繼承了 Trait 的類的物件。Scala 中使用 val 語句可以定義函式,def 語句定義方法。

class Test{
  def m(x: Int) = x + 3
  val f = (x: Int) => x + 3
}
方法宣告

Scala 方法宣告格式如下:

def functionName ([引數列表]) : [return type]

如果你不寫等於號和方法主體,那麼方法會被隱式宣告為抽象(abstract),包含它的型別於是也是一個抽象型別。

方法定義

方法定義由一個 def 關鍵字開始,緊接著是可選的引數列表,一個冒號 : 和方法的返回型別,一個等於號 = ,最後是方法的主體。

Scala 方法定義格式如下:

def functionName ([引數列表]) : [return type] = {
   function body
   return [expr]
}

以上程式碼中 return type 可以是任意合法的 Scala 資料型別。引數列表中的引數可以使用逗號分隔。

以下方法的功能是將兩個傳入的引數相加並求和:

例項

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

如果方法沒有返回值,可以返回為 Unit,這個類似於 Java 的 void, 例項如下:

例項

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

Scala 提供了多種不同的方法呼叫方式:

以下是呼叫方法的標準格式:

functionName( 引數列表 )

如果方法使用了例項的物件來呼叫,我們可以使用類似java的格式 (使用 . 號):

[instance.]functionName( 引數列表 )

以上例項演示了定義與呼叫方法的例項:

例項

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

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

$ scalac Test.scala 
$ scala Test
Returned Value : 12

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2732579/,如需轉載,請註明出處,否則將追究法律責任。

相關文章