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)
posted @ 2020-11-19 19:09  ygfcoder  阅读(149)  评论(0)    收藏  举报