object scala_Demo02 {
def main(args:Array[String]):Unit={
val list =List(1,2,3)println("---------------匿名函数包含单个参数的情况---------------------")//1、匿名函数完整形式
val listMap1 = list.map((n:Int)=>{n +1})//List(2, 3, 4)println(listMap1)//2、省略参数中的类型
val listMap2 = list.map((n)=>{n +1})println(listMap2)//3、因为只有一个参数,省略包含参数的小括号;只有一行代码,可省略{}
val listMap3 = list.map(n => n +1)println(listMap3)//4、因为匿名函数中的参数在表达式右边只出现一次,我们使用下划线代替
val listMap4 = list.map(_ +1)println(listMap4)println("---------------匿名函数包含多个个参数的情况---------------------")//当有多个参数且每个参数在表达式右边也只出现一次时,也可以用下划线简写,但是下划线的顺序与左边参数的顺序一致。
val listMap5 = list.reduceLeft((x:Int,y:Int)=>(x+y))println(listMap5)//6//省略参数情况1
val listMap6 = list.reduceLeft((x,y)=>(x+y))println(listMap6)//6//省略参数情况2,等价于上面的式子
val listMap7 = list.reduceLeft(_+_)println(listMap7)//6}}
5. 用于模式匹配等价于else
object TestMatchCase{
def main(args:Array[String]):Unit={var a:Int=10var b:Int=20var operator:Char='d'var result = operator match {case'+'=> a + b
case'-'=> a - b
case'*'=> a * b
case'/'=> a / b
case _ =>"illegal"}println(result)}}