Scala 匿名函数

1)说明

没有名字的函数就是匿名函数。
(x:Int)=>{函数体}
x:表示输入参数类型;Int:表示输入参数类型;函数体:表示具体代码逻辑

 

2)案例实操

需求 1:传递的函数有一个参数
传递匿名函数至简原则:
(1)参数的类型可以省略,会根据形参进行自动的推导
(2)类型省略之后,发现只有一个参数,则圆括号可以省略;其他情况:没有参数和参
数超过 1 的永远不能省略圆括号。
(3)匿名函数如果只有一行,则大括号也可以省略
(4)如果参数只出现一次,则参数省略且后面参数可以用_代替

 

 1     //匿名函数 :没有名字的函数,通过lambda表达式实现 (参数)=>{函数体}
 2 
 3     //f9((s:String)=>{println(s)})
 4     //(1)参数的类型可以省略,会根据形参进行自动的推导
 5 
 6     //f9((s)=>{println(s)})
 7     //(2)类型省略之后,发现只有一个参数,则圆括号可以省略;其他情况:没有参数和参数超过1的永远不能省略圆括号。
 8 
 9     //f9(s =>{println(s)})
10     //(3)匿名函数如果只有一行,则大括号也可以省略
11 
12     //f9(s =>println(s))
13     //(4)如果参数只出现一次,则参数省略且后面参数可以用_代替
14 
15     //f9(println(_))
16     // (5) 如果可以推断出,println是一个函数体,而不是调用语句,那么(_)可以省
17 
18     // f9(println)
19     //反推导 f9((s:String)=>println(s))

 

 1 def f11(fun:(Int,Int)=>Int):Int={
 2 
 3       fun(1,2)
 4 
 5     }
 6     //println(f11((x:Int,y:Int)=>{x + y}))
 7 
 8     //println(f11((x,y)=>x + y))
 9 
10     println(f11(_ + _))

 

posted @ 2022-01-05 09:48  靠谱杨  阅读(191)  评论(0编辑  收藏  举报