Scala 函式詳解
阿新 • • 發佈:2019-01-29
函式
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序列。