Scala方法和函式
阿新 • • 發佈:2020-11-19
1、方法和函式定義形式不同
2、方法就是函式,函式也是物件
3、函式可以作為引數傳遞到方法中去
方法和函式的引數最多22個
方法
方法定義
//def 方法名(名稱:型別,名稱:型別)={方法體}
def fun1(name:String,age:Int)={
name+age
}
//def 方法名 (名稱:型別,名稱:型別):返回值型別={方法體}
def fun2(name:String,age:Int):String={
name+age
}
函式
函式定義
//val 函式名=(引數名:引數型別,引數名:引數列表)=>{函式體} val hanshu = (a:Int,b:Int)=>{ a+b } //val 函式名:(引數型別,引數型別)=>返回值型別={函式體} val hanshu1:(Int,Int)=>Int={ (a,b)=>a+b }
new Function2[Int, Int, Int] {
override def apply(v1: Int, v2: Int): Int = {
v1 + v2
}
}
//Function2[Int, Int, Int]前兩個是傳入引數,後一個是輸出引數
//建立Function物件,重寫apply方法實現
方法轉函式
//方法名 _
fun1 _
函式作為引數傳入方法
//定義方法,以函式為引數 def fun3(f:(Int,Int)=>Int)={ f(2,4) } //定義函式 val n1=(a:Int,b:Int)=>{ a+b } val n2:(Int,Int)=>Int={ (a,b)=>a-b } //呼叫方法,參入函式 fun3(n1) fun3(n2)