#函数字面量 另一种定义函数的方式#
//定义函数的方式一:def
def getSum(x:Int,y:Int):Int = {
X + Y
}
//定义函数的方式二:字面量
val getSum(x:Int,y:Int):Int = > {
x + Y
}
def main(args:Array[String]): Unit={
println(getSum(10,20))
}
}
#``` 函数字面里的简化写法 ``
object day102102 {
/*
*函数字面里的简化写法
* 1.代码只有一句,省略 {}
* 2. _占位符来替代形参
*/
//
val getSum(x:Int,y:Int):Int = {
X + Y
}
//省略{}
val getSum(x:Int,y:Int):Int => X + Y
//使用 _ 来代替形参
val getSum2(_:Int,_:Int):Int
// 使用 _ 来代替形参,(Int,Int)=>Int就是getSum3的类型
val getSum3:(Int,Int)=>Int = _+_
def main(args:Array[String]): Unit= {
println(getSum(10,20))
println(getSum1(10,20))
println(getSum2(10,20))
println(getSum3(10,20))
}
}
把一个函数,当做参数,传递给另一个函数
定义两个字面量函数。(Int,Int => Int看成一种数据类型
val f1:(Int,Int)=> Int = _+_
// val a:Int
val f2:(Int,Int)=> Int = _+_
定义一个函数,它有三个参数 //参数1:类型是(Int,Int)=> Int 。它表示这里需要一个函数
def test(fn:(Int,Int)=> Int,x:Int,y:Int):Int = {
fn(x,y)
}
def main(args:Array[String]): Unit= {
println(test(f1,10,20))
println(test(f2,10,20))
}