Scala學習四: 函數

Scala學習四: 函數


Scala函數

Scala中定義函數只需要給出:

    def 函數名(參數):返回值類型(可省略)= (可省略) {
        函數體
    }

函數返回值類型:Scala編譯器可以通過 “=右邊” 的表達式類型推斷出返回類型.

def funA(a:Int) = {
    if (a > 0) {
        1 
    } else {
        -1
    }
}

// 注意遞推函數必須聲名返回值類型.
def fac(n:Int):Int = {
    if ( n < 0 ) {
        1 
    } else {
        n * fac(n-1)
    }
}

Scala中的函數可以 省略返回語句 return,語句塊最後一語句就是函數的返回值。
如果函數聲名後 沒有等號“=”,則函數返回值一定是Unit。

def funUnit(ars: Int) {
    val value = if (ars > 0) {
        1
    } else {
        -1
    }
    println("value = " + value)
}

函數的參數:

Scala 中的函數可以指定默認值,或者默認參數
正確的用法:

def defaultVal(value:Int, left:String = "[", right:String = "]"):Unit = {
    println(left + value + right)
}

錯誤的用法:

def defaultVal(value:Int, left = "[", right = "]"):Unit = {
    println(left + value + right)
}
  • Scala中 默認值參數必須得有類型聲名

  • 調用方式: defaultVal(“Hello”,”{{“,”}}”)

  • 如果參數不夠:defaultVal(“Hello”,”{{“)),則 默認參數會從後往前逐個應用進來,也就是說,從左向右依次 替換掉默認值.

  • Scala 調用函數時,如果指名了 調用的參數名稱,調用函數時不用 按照參數 聲名時順序,即:
    defaultVal("Hello",right=">>>")

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章