1.函数的字面量语法
/**
* 函数字面量语法,另一种定义函数的方式
*/
//定义一个函数,求两个数的和
def sum1(x:Int,y:Int):Int={
x+y
}
//函数字面量语法
//相对于使用def来说,它:
//1.省略了返回值类型
//2.省略了函数名,现在就是变量名
//3.多了一个=>
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.函数只用一次,可以用_代替参数名。指定类型。
*/
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))
}
2.Scala部分应用函数
如果一个函数包含多个参数,对该函数传递部分参数使得这个函数返回一个函数,那么这种函数叫做部分应用函数。
/**
* 部分应用函数
*/
//定义一个函数,它用来计算三个整数的和
//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(sum1(10,20,30))
// 如果参数给的不够,会报错!
// println(sum1(10,20))
val r=sum2(10,20,_)//_代表一个占位符:现在还不知道具体是什么
//r就是部分应用函数!对sum2来说,它只有一部分参数
println(r(50))
val r1=sum2(_,20,_)
println(r1(10,30))
}