函数进阶

15 阅读1分钟

字面量语法

object inout50 {
  def sum(x:Int,y:Int):Int = {
    x+y
  }
  val sum1 = (x:Int,y:Int) => {x+y}
  def main(args: Array[String]):Unit ={
    val a = 2
    val n = 5
    println(s"$a + $n = ${sum1(a,n)}")
  }
}

特殊写法

object inout51 {
  def sum(x:Int,y:Int):Int = {
     x+y
  }
  val sum1 = (x:Int,y:Int)=>{x+y}
  val sum2 = (x:Int,y:Int)=> x+y
  val sum3:(Int,Int)=>Int = {_+_}
  val sum4 = (_:Int)+(_:Int)
  
  def main(args: Array[String]): Unit = {
    val a = 2
    val n = 5
    println(s"$a + $n= ${sum1(a,n)}")
    println(s"$a + $n= ${sum2(a,n)}")
    println(s"$a + $n= ${sum3(a,n)}")
    println(s"$a + $n= ${sum4(a,n)}")
  }
}

定义一个函数,计算两数的和

object inoout52 {
  val getMax = (x:Int,y:Int)=> if(x>y) x else y
  val getMin = (x:Int,y:Int)=>if(x<y) x else y
  val test = (x:(Int,Int))=>Int,a:Int,b:Int) => {
    println("test被调用")
    println(x(a,b))
  }
  def main(args:Array[String]):Unit = {
    test(getMax)
  }
}