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

 

作者:​​靠谱杨​​​


我可能不是天才,但我会努力成为人才。

更多日常分享尽在我的VX公众号:小杨的挨踢IT生活

Scala 匿名函数_函数体