1. 程式人生 > >Scala 函式詳解

Scala 函式詳解

函式

    scala定義函式的標準格式為:

    def 函式名(引數名1: 引數型別1, 引數名2: 引數型別2) : 返回型別 = {函式體}

(1)函式示例1:返回Unit型別的函式

def f1() : Unit = {

  println(“f1”)

}

(2)函式示例2:返回Unit型別的函式,但是沒有顯式指定返回型別。(當然也可以返回非Unit型別的值)

def f2() = {

  println(“f2”)

}

(3)函式示例3:返回值型別有多種可能,此時也可以省略Unit

def f3(content: String) = {

  if(content.length >= 3)

    content + "喵喵喵~"

  else

    3

}

(4)函式示例4:帶有預設值引數的函式,呼叫該函式時,可以只給無預設值的引數傳遞值,也可以都傳遞,新值會覆蓋預設值;傳遞引數時如果不按照定義順序,則可以通過引數名來指定。

def f4(content: String, leg: Int = 4) = {

  println(content + "," + leg)

}

(5)函式示例5:變長引數(不確定個數引數,類似Java的...)

def sum(args: Int*) = {

  var result = 0

  for(arg <- args)

    result += arg

  result

}

(6)函式示例6:遞迴函式在使用時必須有明確的返回值型別

def factorial(n: Int): Int = {

  if(n <= 0)

    1

  else

    n * factorial(n - 1)

}

尖叫提示:

    1、Scala可以通過=右邊的表示式  推斷出函式的返回型別。如果函式體需要多個表示式,可以用程式碼塊{}。

    2、可以把return 當做  函式版本的break語句。

    3、遞迴函式一定要指定返回型別。

    4、變長引數通過* 來指定,所有引數會轉化為一個seq序列。