函数字面量语法,另一种定义函数的方式
1.定义一个函数,求两个数的和
2.相对使用def来说,它:
2.1 省略了返回值类型 2.2 省略了函数名 2.3 多一个 =>
object base37 {
// 定义一个函数,求两个数的和
def sum1(x:Int,y:Int):Int={
x+y
}
// 函数字面量语法
val sum2=(x:Int,y:Int)=>{x+y}
def main(args: Array[String]): Unit = {
println(sum1(10,20))
println(sum2(10,20))
}
}
函数字面量语法d的简化写法
1.函数体只有一句,可以省略{}
2, 函数只能用一次,可以用_代替参数名。指定类型
object base38 {
val sum1=(x:Int,y:Int)=>{x+y}
val sum2=(x:Int,y:Int)=>x+y
val sum3:(Int,Int)=>Int=_+_
def main(args: Array[String]): Unit = {
println(sum1(10,20))
println(sum2(10,20))
println(sum3(10,20))
}
}
部分应用函数
1.作用:定义一个函数,它用来计算三个整数的和
2.注意事项:如果参数给的不全,会报错!
object base39 {
// def sum1(a: Int, b: Int, c: Int): Int = {
// a + b + c
// }
val sum2 = (a:Int, b:Int, c:Int) => a + b + c
def main(args: Array[String]): Unit = {
println(sum2(10, 20, 30))
// println(sum2(10, 20))
val r = sum2(10,20, _)
// 表示一个占位符:现在还不知道具体是什么
// 部分应用函数!对sum2来说,它只有一部分参数
println(r(50))
val r1 = sum2(_, 20, _)
println(r1(10, 30))
}
}