1. 程式人生 > 實用技巧 >Scala方法和函式

Scala方法和函式

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)