Scala基礎02-Scala方法和函式及其區別
阿新 • • 發佈:2018-12-11
Scala運算子及函式和方法的呼叫
但有一點特別的:這些操作符在scala中實際上是方法。例如:
a + b
是如下方法呼叫的簡寫:
a.+(b)
a 方法 b可以寫成 a.方法(b)。
方法的呼叫(2.後面按下table,會有以下相關提示)
定義方法和函式
1 定義方法
def m1(x:Int,y:Int):Int=x+y
定義方法用def關鍵字,m1為方法名稱,x:Int 和 y:Int為引數列表,後面的Int為返回值型別,x+y為方法體。
方法的返回值型別可以不寫,編譯器可以自動推斷出來,但是對於遞迴函式,必須指定返回型別。
示例:通過遞迴方法求一個數的階乘。
def m3(x:Int):Int={ if(x==1) 1 else x*m3(x-1) }
2 定義函式
定義函式的基本語法:
val f1=(x:Int,y:Int)=>x*y
//呼叫:
f1(3,4)
3 方法和函式的區別
函式是一個物件,有N個引數,就繼承FunctionN這個類。共到Function22,函式最多可以帶22個引數。
函式具備該物件的一些方法:
apply curried toString tupled
而方法就是指方法就是物件中的方法。不具備函式的以上特性。
4 方法轉換成函式
如果想把方法轉換成一個函式,可以用方法名,後面跟上下劃線的方式。
val 函式=方法名_