函数的字面量语法

43 阅读1分钟

字面量语法

看起来就像给变量赋值
要点:
1.有一个箭头符号 =>
2.省略def,省略了返回值类型
特殊写法-简写
1.函数只有一句代码,可以省略{}
2.如果参数只使用了一次,那么可以用 _ 来代替。要加上参数的类型

object base50 {

    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 base51 {
    
    val getMax = (x:Int, y:Int) => if (x>y) x else y
    
    
    val getMin = (x:Int, y:Int) => if (x<y) x else y
    
    //test这个函数,它的第一个参数是一个函数
    val test=(x:(Int,Int)=>Int,a:Int,b:Int) => {
        println("test被调用")
        println(x(a,b))
    }

    def main(args: Array[String]): Unit = {
        test(getMax,1,2)
    }
}

部分应用函数,在调用函数的时候,只传入一部分参数

object base52 {

    val mvl = (a:Int, b:Int, c:Int) => a*b*c


    def main(args: Array[String]): Unit = {
        
        val rst=mvl(2,3,4)
        val f=mvl(2,3,_)
        var rst1=f(5)
        println(rst)
        println(rst1)
    }
}